mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 22:42:25 -04:00
make japanese/chinese generation fields more easily customizable
This commit is contained in:
parent
f903288c59
commit
490c7c4bed
2 changed files with 18 additions and 9 deletions
|
@ -7,6 +7,11 @@ from anki.utils import findTag, stripHTML
|
||||||
from anki.hooks import addHook
|
from anki.hooks import addHook
|
||||||
from anki.db import *
|
from anki.db import *
|
||||||
|
|
||||||
|
cantoneseTag = "Cantonese"
|
||||||
|
mandarinTag = "Mandarin"
|
||||||
|
srcField = "Expression"
|
||||||
|
dstField = "Reading"
|
||||||
|
|
||||||
class UnihanController(object):
|
class UnihanController(object):
|
||||||
|
|
||||||
def __init__(self, target):
|
def __init__(self, target):
|
||||||
|
@ -61,19 +66,19 @@ class ChineseGenerator(object):
|
||||||
unihan = ChineseGenerator()
|
unihan = ChineseGenerator()
|
||||||
|
|
||||||
def onFocusLost(fact, field):
|
def onFocusLost(fact, field):
|
||||||
if field.name != "Expression":
|
if field.name != srcField:
|
||||||
return
|
return
|
||||||
if findTag("Cantonese", fact.model.tags):
|
if findTag(cantoneseTag, fact.model.tags):
|
||||||
type = "cantonese"
|
type = "cantonese"
|
||||||
elif findTag("Mandarin", fact.model.tags):
|
elif findTag(mandarinTag, fact.model.tags):
|
||||||
type = "mandarin"
|
type = "mandarin"
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
if fact['Reading']:
|
if fact[dstField]:
|
||||||
return
|
return
|
||||||
except:
|
except:
|
||||||
return
|
return
|
||||||
fact['Reading'] = unihan.toReading(type, field.value)
|
fact[dstField] = unihan.toReading(type, field.value)
|
||||||
|
|
||||||
addHook('fact.focusLost', onFocusLost)
|
addHook('fact.focusLost', onFocusLost)
|
||||||
|
|
|
@ -6,6 +6,10 @@ import sys, os
|
||||||
from anki.utils import findTag, stripHTML
|
from anki.utils import findTag, stripHTML
|
||||||
from anki.hooks import addHook
|
from anki.hooks import addHook
|
||||||
|
|
||||||
|
modelTag = "Japanese"
|
||||||
|
srcField = "Expression"
|
||||||
|
dstField = "Reading"
|
||||||
|
|
||||||
class KakasiController(object):
|
class KakasiController(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# add our pre-packaged kakasi to the path
|
# add our pre-packaged kakasi to the path
|
||||||
|
@ -90,17 +94,17 @@ if not kakasi.available():
|
||||||
def onFocusLost(fact, field):
|
def onFocusLost(fact, field):
|
||||||
if not kakasi:
|
if not kakasi:
|
||||||
return
|
return
|
||||||
if field.name != "Expression":
|
if field.name != srcField:
|
||||||
return
|
return
|
||||||
if not findTag("Japanese", fact.model.tags):
|
if not findTag(modelTag, fact.model.tags):
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
if fact['Reading']:
|
if fact[dstField]:
|
||||||
return
|
return
|
||||||
except:
|
except:
|
||||||
return
|
return
|
||||||
tmp = kakasi.toFurigana(field.value)
|
tmp = kakasi.toFurigana(field.value)
|
||||||
if tmp != field.value:
|
if tmp != field.value:
|
||||||
fact['Reading'] = tmp
|
fact[dstField] = tmp
|
||||||
|
|
||||||
addHook('fact.focusLost', onFocusLost)
|
addHook('fact.focusLost', onFocusLost)
|
||||||
|
|
Loading…
Reference in a new issue