Ejemplo n.º 1
0
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())
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
 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")
Ejemplo n.º 4
0
    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])
Ejemplo n.º 5
0
def roma2(s):
    return "".join([c for c in roma(s).lower().replace("-", "_") if c in string.lowercase + "_"])
Ejemplo n.º 6
0
 def roma(self, word):
     found = self.find(word)
     if found:
         word = found[0].reb[0]
     return romaji.roma(word)