olá = "hello" obrigado = "thank you" bom dia = "good morning" boa noite = "good night" como estás? = "how are you?" tudo bem = "all good"
flashcard("saudade", "untranslatable longing") flashcard("madrugada", "early morning hours") flashcard("desenrascar", "to improvise")
vocab.add("eu falo português") vocab.add("onde fica a estação?") vocab.add("quanto custa?") vocab.add("posso pagar com cartão?")
for (word of ["obrigado","saudade","bacalhau","fado","azulejo"]) { memorize(word); repeat(word, 3); if (recall > 0.9) promote(word) }
SELECT word, translation, score FROM vocabulary WHERE lang = "pt-PT" ORDER BY last_seen ASC LIMIT 50 -- review due words first always
{ "word": "saudade", "ipa": "/sɐwˈdad(ɨ)/", "pos": "noun", "def": "deep longing for something absent", "score": 0.97, "streak": 12 }
translate("I miss you") => "tenho saudades tuas" | translate("where is the beach?") => "onde fica a praia?" | confidence: 0.94 ok!
def spaced_repetition(card): if card.streak > 5: interval *= 2.5 elif card.streak > 2: interval *= 1.8 else: interval = 1 # review
listen("podcast_pt_ep47.mp3") -> transcribe() -> highlight_new_words() -> add_to_deck() -> schedule_review() // daily Portuguese flow
const ptPhrases = ["com licença","desculpe","por favor","obrigado","de nada","saúde","bom apetite","até logo","tchau","boa sorte"]
meme.parse("bacalhau_meme_042.jpg") -> extract_text("há bacalhau?") -> translate("is there cod?") -> add_flashcard() // meme learning
conjugate("falar"): eu falo, tu falas, ele fala, nós falamos, vós falais, eles falam // present tense regular -ar verb first conjugation
streak: 47 days | words_learned: 2847 | retention: 96.2% | level: B1 | next_review: 14:00 | daily_goal: 20 new words + 50 reviews ok
audio.play("como te chamas?") -> user.speak() -> compare_pronunciation(target, recorded) -> score: 0.89 -> "quase perfeito!" // stt
import { portuguese } from "@linguahackers/languages" const deck = new FlashcardDeck("pt-PT") deck.addFromMemes(feed) deck.review()
while (!fluent("pt-PT")) { watchMeme() learnPhrase() reviewFlashcards() practiceSpeaking() sleep(8h) streak++ } // nunca desistas!!!
grammar.rule("ser vs estar"): ser = permanent qualities, estar = temporary states | "eu sou português" vs "eu estou cansado" // gotcha
fn learn_from_meme(img: &str) -> Vec<Word> { let text = ocr(img); let words = tokenize(text, "pt"); words.filter(|w| !known(w)) } //ok
> memesador --streak=47 --words=2847 --lang=pt-PT [✓] review complete: 50/50 cards | accuracy: 96% | new words: +12 | level up: B1!
playlist = ["fado","brazilian_funk","kizomba","pimba","bossa_nova"] for genre in playlist: extract_lyrics() -> parse() -> learn() # fun
const quiz = { q: "como se diz thank you?", a: "obrigado/obrigada", hint: "gender matters!", difficulty: "A1" } // basic but crucial
saudade desculpa obrigado parabéns madrugada desenrascar bacalhau azulejo fado sertanejo miradouro pastel_de_nata bifana francesinha //pt
anki.sync() duolingo.export() memesador.import(deck) -> merged: 2847 cards | conflicts: 0 | new: 134 | review_queue: 89 // all synced
eu tu ele/ela nós vós eles/elas | o a os as um uma uns umas | de em por para com sem sobre entre até desde contra durante segundo //gram
chat.send("Olá! Tudo bem?") chat.receive("Tudo ótimo, e contigo?") chat.send("Também! Vamos tomar café?") -> conversation_score: A2+ ok