Generate mo files if po are updated, added _ instead of space char due to makefile restrictions (nw)

This commit is contained in:
Miodrag Milanovic 2016-02-21 11:33:56 +01:00
parent 60f8515a0d
commit bcaaa956e0
9 changed files with 14 additions and 55 deletions

View File

@ -1244,6 +1244,7 @@ clean: genieclean
GEN_FOLDERS := $(GENDIR)/$(TARGET)/layout/ $(GENDIR)/$(TARGET)/$(SUBTARGET)/
rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
LAYOUTS=$(wildcard $(SRC)/$(TARGET)/layout/*.lay)
ifneq (,$(wildcard src/osd/$(OSD)/$(OSD).mak))
@ -1262,6 +1263,7 @@ genie: $(GENIE)
generate: \
genie \
$(GEN_FOLDERS) \
$(patsubst %.po,%.mo,$(call rwildcard, language/, *.po)) \
$(patsubst $(SRC)/%.lay,$(GENDIR)/%.lh,$(LAYOUTS)) \
$(SRC)/devices/cpu/m68000/m68kops.cpp
@ -1276,6 +1278,10 @@ else
$(SILENT) $(MAKE) -C $(SRC)/devices/cpu/m68000 CC="$(CC)" CXX="$(CXX)"
endif
%.mo: %.po
@echo Converting translation $<...
$(SILENT) msgfmt --check --output-file $@ $<
#-------------------------------------------------
# Regression tests
#-------------------------------------------------
@ -1431,55 +1437,4 @@ translation:
$(SILENT) msgmerge -U "language/Turkish/strings.po" mame.pot
$(SILENT) msgmerge -U "language/Ukrainian/strings.po" mame.pot
$(SILENT) msgmerge -U "language/Vietnamese/strings.po" mame.pot
$(SILENT) msgfmt --check --output-file "language/Afrikaans/strings.mo" "language/Afrikaans/strings.po"
$(SILENT) msgfmt --check --output-file "language/Albanian/strings.mo" "language/Albanian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Arabic/strings.mo" "language/Arabic/strings.po"
$(SILENT) msgfmt --check --output-file "language/Basque/strings.mo" "language/Basque/strings.po"
$(SILENT) msgfmt --check --output-file "language/Belarusian/strings.mo" "language/Belarusian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Bosnian/strings.mo" "language/Bosnian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Bulgarian/strings.mo" "language/Bulgarian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Burmese/strings.mo" "language/Burmese/strings.po"
$(SILENT) msgfmt --check --output-file "language/Catalan/strings.mo" "language/Catalan/strings.po"
$(SILENT) msgfmt --check --output-file "language/Chinese (Simple)/strings.mo" "language/Chinese (Simple)/strings.po"
$(SILENT) msgfmt --check --output-file "language/Chinese (Traditional)/strings.mo" "language/Chinese (Traditional)/strings.po"
$(SILENT) msgfmt --check --output-file "language/Croatian/strings.mo" "language/Croatian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Czech/strings.mo" "language/Czech/strings.po"
$(SILENT) msgfmt --check --output-file "language/Danish/strings.mo" "language/Danish/strings.po"
$(SILENT) msgfmt --check --output-file "language/Dutch/strings.mo" "language/Dutch/strings.po"
$(SILENT) msgfmt --check --output-file "language/English/strings.mo" "language/English/strings.po"
$(SILENT) msgfmt --check --output-file "language/Estonian/strings.mo" "language/Estonian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Finnish/strings.mo" "language/Finnish/strings.po"
$(SILENT) msgfmt --check --output-file "language/French/strings.mo" "language/French/strings.po"
$(SILENT) msgfmt --check --output-file "language/French (Canada)/strings.mo" "language/French (Canada)/strings.po"
$(SILENT) msgfmt --check --output-file "language/Georgian/strings.mo" "language/Georgian/strings.po"
$(SILENT) msgfmt --check --output-file "language/German/strings.mo" "language/German/strings.po"
$(SILENT) msgfmt --check --output-file "language/Greek/strings.mo" "language/Greek/strings.po"
$(SILENT) msgfmt --check --output-file "language/Hebrew/strings.mo" "language/Hebrew/strings.po"
$(SILENT) msgfmt --check --output-file "language/Hindi/strings.mo" "language/Hindi/strings.po"
$(SILENT) msgfmt --check --output-file "language/Hungarian/strings.mo" "language/Hungarian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Indonesian/strings.mo" "language/Indonesian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Italian/strings.mo" "language/Italian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Japanese/strings.mo" "language/Japanese/strings.po"
$(SILENT) msgfmt --check --output-file "language/Korean/strings.mo" "language/Korean/strings.po"
$(SILENT) msgfmt --check --output-file "language/Latvian/strings.mo" "language/Latvian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Lithuanian/strings.mo" "language/Lithuanian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Macedonian/strings.mo" "language/Macedonian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Norwegian/strings.mo" "language/Norwegian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Persian/strings.mo" "language/Persian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Polish/strings.mo" "language/Polish/strings.po"
$(SILENT) msgfmt --check --output-file "language/Portuguese/strings.mo" "language/Portuguese/strings.po"
$(SILENT) msgfmt --check --output-file "language/Portuguese (Brazil)/strings.mo" "language/Portuguese (Brazil)/strings.po"
$(SILENT) msgfmt --check --output-file "language/Romanian/strings.mo" "language/Romanian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Russian/strings.mo" "language/Russian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Serbian/strings.mo" "language/Serbian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Serbian (Cyrillic)/strings.mo" "language/Serbian (Cyrillic)/strings.po"
$(SILENT) msgfmt --check --output-file "language/Slovak/strings.mo" "language/Slovak/strings.po"
$(SILENT) msgfmt --check --output-file "language/Slovenian/strings.mo" "language/Slovenian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Spanish/strings.mo" "language/Spanish/strings.po"
$(SILENT) msgfmt --check --output-file "language/Spanish (Mexico)/strings.mo" "language/Spanish (Mexico)/strings.po"
$(SILENT) msgfmt --check --output-file "language/Swedish/strings.mo" "language/Swedish/strings.po"
$(SILENT) msgfmt --check --output-file "language/Thai/strings.mo" "language/Thai/strings.po"
$(SILENT) msgfmt --check --output-file "language/Turkish/strings.mo" "language/Turkish/strings.po"
$(SILENT) msgfmt --check --output-file "language/Ukrainian/strings.mo" "language/Ukrainian/strings.po"
$(SILENT) msgfmt --check --output-file "language/Vietnamese/strings.mo" "language/Vietnamese/strings.po"

View File

@ -37,7 +37,9 @@ void load_translation(emu_options &m_options)
{
g_translation.clear();
emu_file file(m_options.language_path(), OPEN_FLAG_READ);
if (file.open(m_options.language(), PATH_SEPARATOR "strings.mo") == FILERR_NONE)
auto name = std::string(m_options.language());
strreplace(name, " ", "_");
if (file.open(name.c_str(), PATH_SEPARATOR "strings.mo") == FILERR_NONE)
{
UINT64 size = file.size();
UINT32 *buffer = global_alloc_array(UINT32, size / 4 + 1);

View File

@ -32,8 +32,10 @@ ui_menu_custom_ui::ui_menu_custom_ui(running_machine &machine, render_container
for (int x = 0; (dirent = path.next()) != nullptr; ++x)
if (dirent->type == ENTTYPE_DIR && strcmp(dirent->name, ".") != 0 && strcmp(dirent->name, "..") != 0)
{
m_lang.push_back(dirent->name);
if (strcmp(dirent->name, lang) == 0)
auto name = std::string(dirent->name);
strreplace(name, "_", " ");
m_lang.push_back(name);
if (strcmp(name.c_str(), lang) == 0)
m_currlang = cnt;
++cnt;
}