diff --git a/Makefile b/Makefile index 07c132a..40f915e 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ endif all: lang help: - @echo make board: build tiles board files + @echo make extract-lang-dists: extract the distributions per language from Wikipedia @echo make lang: build the translation files @echo make eslint: use ESLint to check conformance against the coding style @echo make start-dev-server: start a development server @@ -21,8 +21,8 @@ help: public/l10n/js/fr.js: $(wildcard l10n/po/*/*.po) cd l10n; make -board: - cd l10n; make board +extract-lang-dists: + cd lang-dists-extractor; make lang: public/l10n/js/fr.js diff --git a/l10n/Makefile b/l10n/Makefile index fa7a662..b1b4365 100644 --- a/l10n/Makefile +++ b/l10n/Makefile @@ -1,39 +1,10 @@ -.PHONY: all lang board +.PHONY: all lang .EXPORT_ALL_VARIABLES: ROOT_LANG = ../public/l10n -ROOT_BOARD = ../server/lang -POT = pot/board.pot - -SPECIAL = br.json xk.json uk.json - -all: lang board +all: lang lang: node makejs.js - -board: Lettres_du_Scrabble - -rm $(POT) - node make_board.js > $(POT) - make special - -special: $(addprefix $(ROOT_BOARD)/,$(SPECIAL)) - -$(ROOT_BOARD)/br.json: tile-Breton.txt make_board.awk Makefile -$(ROOT_BOARD)/xk.json: tile-Klingon.txt make_board.awk Makefile -$(ROOT_BOARD)/uk.json: tile-Ukrainian.txt make_board.awk Makefile - -$(addprefix $(ROOT_BOARD)/,$(SPECIAL)): - # board lang - cat $< | awk -f make_board.awk > $@ - sed s/@LANG@/$(subst tile-,,$(<:.txt=))/ -i $@ - sed s/@CODE@/$(subst $(ROOT_BOARD)/,,$(@:.json=))/ -i $@ - # pot file - echo >> $(POT) - echo "msgid \"$(subst tile-,,$(<:.txt=))\"" >> $(POT) - echo "msgstr \"\"" >> $(POT) - -Lettres_du_Scrabble: - wget https://fr.wikipedia.org/wiki/Lettres_du_Scrabble diff --git a/l10n/pot/board.pot b/l10n/pot/board.pot index a6688fc..1ff47a1 100644 --- a/l10n/pot/board.pot +++ b/l10n/pot/board.pot @@ -2,61 +2,67 @@ msgid "Afrikaans" msgstr "" -msgid "German" -msgstr "" - -msgid "English" -msgstr "" - msgid "Arabic" msgstr "" -msgid "Armenian" -msgstr "" - -msgid "Basque" -msgstr "" - msgid "Bulgarian" msgstr "" +msgid "Breton" +msgstr "" + msgid "Catalan" msgstr "" -msgid "Croatian" +msgid "Czech" +msgstr "" + +msgid "Welsh" msgstr "" msgid "Danish" msgstr "" -msgid "Spanish" +msgid "German" +msgstr "" + +msgid "Greek" +msgstr "" + +msgid "English" msgstr "" msgid "Esperanto" msgstr "" +msgid "Spanish" +msgstr "" + msgid "Estonian" msgstr "" +msgid "Basque" +msgstr "" + msgid "Finnish" msgstr "" msgid "French" msgstr "" -msgid "Welsh" -msgstr "" - -msgid "Greek" +msgid "Irish" msgstr "" msgid "Hebrew" msgstr "" +msgid "Croatian" +msgstr "" + msgid "Hungarian" msgstr "" -msgid "Irish" +msgid "Armenian" msgstr "" msgid "Icelandic" @@ -68,10 +74,10 @@ msgstr "" msgid "Latin" msgstr "" -msgid "Latvian" +msgid "Lithuanian" msgstr "" -msgid "Lithuanian" +msgid "Latvian" msgstr "" msgid "Malay" @@ -104,17 +110,11 @@ msgstr "" msgid "Swedish" msgstr "" -msgid "Czech" -msgstr "" - msgid "Turkish" msgstr "" -msgid "Breton" -msgstr "" - -msgid "Klingon" -msgstr "" - msgid "Ukrainian" msgstr "" + +msgid "Klingon" +msgstr "" diff --git a/l10n/Lettres_du_Scrabble b/lang-dists-extractor/Lettres_du_Scrabble similarity index 100% rename from l10n/Lettres_du_Scrabble rename to lang-dists-extractor/Lettres_du_Scrabble diff --git a/lang-dists-extractor/Makefile b/lang-dists-extractor/Makefile new file mode 100644 index 0000000..962b26e --- /dev/null +++ b/lang-dists-extractor/Makefile @@ -0,0 +1,36 @@ +.PHONY: all multiple-boards extra-boards pot-file + +.EXPORT_ALL_VARIABLES: + +ROOT_BOARD = ../server/lang + +POT_FILE = ../l10n/pot/board.pot + +EXTRA = br.json xk.json uk.json + +all: + make multiple-boards + make extra-boards + make pot-file + +multiple-boards: Lettres_du_Scrabble + node make_board.js + +extra-boards: $(addprefix $(ROOT_BOARD)/,$(EXTRA)) + +$(ROOT_BOARD)/br.json: tile-Breton.txt make_board.awk Makefile +$(ROOT_BOARD)/xk.json: tile-Klingon.txt make_board.awk Makefile +$(ROOT_BOARD)/uk.json: tile-Ukrainian.txt make_board.awk Makefile + +$(addprefix $(ROOT_BOARD)/,$(EXTRA)): + cat $< | awk -f make_board.awk | \ + sed s/@LANG@/$(subst tile-,,$(<:.txt=))/ | \ + sed s/@CODE@/$(subst $(ROOT_BOARD)/,,$(@:.json=))/ > $@ + +pot-file: $(POT_FILE) + +$(POT_FILE): $(sort $(wildcard $(ROOT_BOARD)/*.json)) + awk '/name/ { gsub(/[":,]/, ""); printf "\nmsgid \"%s\"\nmsgstr \"\"\n", $$2 }' $^ > $@ + +Lettres_du_Scrabble: + wget https://fr.wikipedia.org/wiki/Lettres_du_Scrabble diff --git a/l10n/languageCodes.json b/lang-dists-extractor/languageCodes.json similarity index 100% rename from l10n/languageCodes.json rename to lang-dists-extractor/languageCodes.json diff --git a/l10n/make_board.awk b/lang-dists-extractor/make_board.awk similarity index 100% rename from l10n/make_board.awk rename to lang-dists-extractor/make_board.awk diff --git a/l10n/make_board.js b/lang-dists-extractor/make_board.js similarity index 91% rename from l10n/make_board.js rename to lang-dists-extractor/make_board.js index b8eb3b3..ad00ef4 100755 --- a/l10n/make_board.js +++ b/lang-dists-extractor/make_board.js @@ -32,11 +32,6 @@ for (const line of htmlText.split("\n")) { bag = bag.slice(0, -2); values = values.slice(0, -2) + "\n"; - /* Pot file */ - console.log(""); - console.log("msgid \"" + lang + "\""); - console.log("msgstr \"\""); - /* Board file */ let file = "{\n"; file += " \"code\": \"" + key + "\",\n"; @@ -57,9 +52,10 @@ for (const line of htmlText.split("\n")) { /* As parsing has been done on the French page, one needs to translate language name from French to English */ - for (const key of Object.keys(code.langFr)) { - if (code.langFr[key] === lang) { - lang = code.langEn[key]; + for (const k of Object.keys(code.langFr)) { + if (code.langFr[k] === lang) { + lang = code.langEn[k]; + key = k; break; } } diff --git a/l10n/tile-Breton.txt b/lang-dists-extractor/tile-Breton.txt similarity index 100% rename from l10n/tile-Breton.txt rename to lang-dists-extractor/tile-Breton.txt diff --git a/l10n/tile-Klingon.txt b/lang-dists-extractor/tile-Klingon.txt similarity index 100% rename from l10n/tile-Klingon.txt rename to lang-dists-extractor/tile-Klingon.txt diff --git a/l10n/tile-Ukrainian.txt b/lang-dists-extractor/tile-Ukrainian.txt similarity index 100% rename from l10n/tile-Ukrainian.txt rename to lang-dists-extractor/tile-Ukrainian.txt