Anki/qt/aqt_data/locale/compile.bzl
Damien Elmes aea0a6fcc6 initial Bazel conversion
Running and testing should be working on the three platforms, but
there's still a fair bit that needs to be done:

- Wheel building + testing in a venv still needs to be implemented.
- Python requirements still need to be compiled with piptool and pinned;
need to compile on all platforms then merge
- Cargo deps in cargo/ and rslib/ need to be cleaned up, and ideally
unified into one place
- Currently using rustls to work around openssl compilation issues
on Linux, but this will break corporate proxies with custom SSL
authorities; need to conditionally use openssl or use
https://github.com/seanmonstar/reqwest/pull/1058
- Makefiles and docs still need cleaning up
- It may make sense to reparent ts/* to the top level, as we don't
nest the other modules under a specific language.
- rspy and pylib must always be updated in lock-step, so merging
rspy into pylib as a private module would simplify things.
- Merging desktop-ftl and mobile-ftl into the core ftl would make
managing and updating translations easier.
- Obsolete scripts need removing.
- And probably more.
2020-11-01 14:26:58 +10:00

87 lines
1.5 KiB
Python

def compile(name, po_file, pot_file, mo_file):
native.genrule(
name = name,
srcs = [po_file, pot_file],
outs = [mo_file],
# homebrew gettext is not on path by default
cmd = """\
export PATH="$$PATH":/usr/local/opt/gettext/bin
msgmerge -q $(location {po_file}) $(location {pot_file}) | msgfmt - --output-file=$(location {mo_file})
""".format(
po_file = po_file,
pot_file = pot_file,
mo_file = mo_file,
),
)
_langs = [
"af",
"ar",
"bg",
"ca",
"cs",
"da",
"de",
"el",
"en-GB",
"eo",
"es",
"et",
"eu",
"fa",
"fi",
"fr",
"ga-IE",
"gl",
"he",
"hi-IN",
"hr",
"hu",
"hy-AM",
"it",
"ja",
"jbo",
"kab",
# "km",
"ko",
"la",
"mn",
"mr",
"ms",
"nb-NO",
"nl",
"nn-NO",
"oc",
"or",
"pl",
"pt-BR",
"pt-PT",
"ro",
"ru",
"sk",
"sl",
"sr",
"sv-SE",
"th",
"tr",
"uk",
# "ur",
"vi",
"zh-CN",
"zh-TW",
]
def compile_all(name, visibility):
pot_file = "@aqt_po//:desktop/anki.pot"
mo_files = []
for lang in _langs:
po_file = "@aqt_po//:desktop/{}/anki.po".format(lang)
mo_file = "{}/LC_MESSAGES/anki.mo".format(lang)
mo_files.append(mo_file)
compile(lang, po_file, pot_file, mo_file)
native.filegroup(
name = name,
srcs = mo_files,
visibility = visibility,
)