def katakanaize(hiragana): """ Return katakana Transform a hiragana string to katakana through the circuitous route of converting it to rōmaji, then to uppercase, than to kana again. """ return romaji.kana(romaji.roma(hiragana).upper())
def find_kana(char_to_find=None, raw_input=raw_input): """write katakana if uppercase, else hiragana""" if not char_to_find: char_to_find = romaji.choice() char_guessed = raw_input("translation for %s:\n" % char_to_find) char_guessed = unicode(char_guessed, "utf-8") if romaji.roma(char_guessed) == char_to_find: answer = "Good job !" else: answer = "Wrong" return answer
def on_lineEdit1_textChanged(self): req = unicode(self.lineEdit1.text()) self.lineEditK.setText(roma(req)) if len(req) == 0: return latin1 = codecs.utf_8_encode(req)[0] self.listWidget.clear() v = os.popen("grep '" + latin1 + "' edict.utf8").readlines() for entry in [codecs.utf_8_decode(line[:-1])[0] for line in v[:150]]: if '['+req+']' in entry or entry.startswith(req + " "): # exact match => move to top and color in gray self.listWidget.insertItem(0, entry) self.listWidget.item(0).setBackground(self.pen) else: self.listWidget.addItem(entry) if len(req) == 1 and req in D_unichar: infos_unicode = D_unichar[req] entry = "\n".join(["%s: %s" % x for x in (sorted(infos_unicode, reverse=True))])[4:] self.listWidget.insertItem(0, entry) self.listWidget.item(0).setBackground(self.penUnicode) self.listWidget.item(0).setFont(self.smallfont) self.stackedWidget.setCurrentIndex(0) if req.lower() == "samuel": QtGui.QMessageBox.information(None, "Spoiled!", u"Dans cette série, il meurt à la fin", "TA GUEULE")
def refresh(self, reverse): if self.displayed == (2 if reverse else 0): self.label_font.setFamily(random.choice(possible_fonts)) # check previous answer and update srs map prev_srs_idx, prev_srs_entry = self.current_item_srs if prev_srs_entry != None: if self.progressBar.value() < 4000: answer_correct = 2 # easy elif self.progressBar.value() < 9000: answer_correct = 1 elif self.progressBar.value() < 14900: answer_correct = 0 else: answer_correct = -1 srs.check_answer_and_update(prev_srs_idx, correct = answer_correct, category = prev_srs_entry[3]) # pick a next question srs_idx, srs_entry = srs.find_one_timeouted(is_forward = not reverse) if self.label_1.hasSelectedText(): # instead, pick a question with same character srs_idx, srs_entry = srs.find_matching( unicode(self.label_1.selectedText()) ) if srs_entry != None: self.curIndex = srs.vocaIndex_fromsrs(("F" if not reverse else "R"), srs_entry) else: print "OK, finished - looping" self.txts = srs.get_voca(self.curIndex) self.label_2.clear() self.label_3.clear() self.label_1.clear() self.progressBar.setValue(0) self.progress_timer.start(100) self.current_item_srs = (srs_idx, srs_entry) if self.displayed == 0: self.label_1.setText(self.txts[0]) self.label_1.setFont(self.label_font) if self.txts[1] == "": self.label_2.setText(u" (%s)" % roma(self.txts[0])) if self.displayed == 1: if self.txts[1] != "": try: v = u" (%s)" % roma(self.txts[1]) except: v = "" self.label_2.setText(self.txts[1] + v) if reverse: self.progress_timer.stop() else: self.displayed = (1 if reverse else 2) if self.displayed == 2: self.label_3.setText(self.txts[2]) if not reverse: self.progress_timer.stop() self.label_1.setToolTip(u'<span style="font-size:72pt;font-family:KanjiStrokeOrders">%s</span>' % self.txts[0])
def roma2(s): return "".join([c for c in roma(s).lower().replace("-", "_") if c in string.lowercase + "_"])
def roma(self, word): found = self.find(word) if found: word = found[0].reb[0] return romaji.roma(word)