diff options
| -rw-r--r-- | i18n.md | 30 | ||||
| -rw-r--r-- | po/uk.po | 90 | ||||
| -rw-r--r-- | share/applications/isodumper.desktop | 1 | ||||
| -rw-r--r-- | tools/po-compile.sh | 17 | ||||
| -rwxr-xr-x | tools/po-update.sh | 67 | 
5 files changed, 159 insertions, 46 deletions
| @@ -0,0 +1,30 @@ +# Translating IsoDumper + +First, make sure you have installed the `gettext` package. + +Here are the steps to add/update a translation (you should run all scripts from +the source root): + +1. Get an up-to-date copy of the source files. Preferrably, make a clone on +   GitHub and clone it locally on your machine; this way you can later make a +   pull request to the main project. + +2. Run `./tools/po-update.sh <language>`; it will create/update the file +   `./po/<language>.po`. + +3. Edit `./po/<language>.po` with your favourite editor (just make sure it saves +   the file with the UTF-8 encoding). For each string in english (msgid), edit +   the translation (msgstr); if you leave msgstr empty, the string will remain +   untranslated. + +   Alternatively, you can use the excellent `poedit`. + +4. Run `./tools/po-compile.sh`. It will bring up-to-date all the compiled +   language files, necessary at runtime. + +5. Start IsoDumper (`./bin/isodumper`). By default it will pick up the system languge +   from your environment; to start it in another language, run +   `LANGUAGE=<language> ./bin/isodumper`. + +You can edit the translation iteratively, just repeat from step 3. +If the upstream changes, do a `git pull` and then repeat from step 2. @@ -1,22 +1,22 @@  # Ukrainian translation for usb-imagewriter -# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008  # This file is distributed under the same license as the usb-imagewriter package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.  # +# Yuri Chornoivan <yurchor@ukr.net>, 2013.  msgid ""  msgstr ""  "Project-Id-Version: usb-imagewriter\n"  "Report-Msgid-Bugs-To: \n"  "POT-Creation-Date: 2013-09-19 22:15+0200\n" -"PO-Revision-Date: 2009-03-04 20:27+0000\n" -"Last-Translator: Вова Щербан \\ Vova Svoka <Unknown>\n" -"Language-Team: Ukrainian <uk@li.org>\n" +"PO-Revision-Date: 2013-09-25 18:56+0300\n" +"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" +"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"  "Language: uk\n"  "MIME-Version: 1.0\n"  "Content-Type: text/plain; charset=UTF-8\n"  "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-06-12 12:08+0000\n" -"X-Generator: Launchpad (build Unknown)\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<" +"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"  #: ../lib/isodumper.py:113  msgid "Image: " @@ -24,19 +24,19 @@ msgstr "Образ: "  #: ../lib/isodumper.py:114  msgid "Target Device: " -msgstr "Цільовий пристрій: " +msgstr "Пристрій призначення: "  #: ../lib/isodumper.py:130  msgid "Unmounting all partitions of " -msgstr "Відключення всіх розділів " +msgstr "Демонтуємо усі розділи "  #: ../lib/isodumper.py:132  msgid "Trying to unmount " -msgstr "Пробую відключити " +msgstr "Намагаємося демонтувати "  #: ../lib/isodumper.py:138 ../lib/isodumper.py:144  msgid "Error, umount " -msgstr "Помилка відключення " +msgstr "Помилка демонтування "  #: ../lib/isodumper.py:138  msgid " was terminated by signal " @@ -44,11 +44,11 @@ msgstr " було перервано сигналом "  #: ../lib/isodumper.py:142  msgid " successfully unmounted" -msgstr " успішно відключено" +msgstr " успішно демонтовано"  #: ../lib/isodumper.py:144  msgid " returned " -msgstr " повернув " +msgstr " повернуто "  #: ../lib/isodumper.py:147  msgid "Execution failed: " @@ -56,33 +56,31 @@ msgstr "Помилка виконання: "  #: ../lib/isodumper.py:155  msgid "Could not read mtab !" -msgstr "Не можу прочитати файл mtab!" +msgstr "Не вдалося прочитати файл mtab!"  #: ../lib/isodumper.py:164 ../lib/isodumper.py:187  msgid "Reading error." -msgstr "" +msgstr "Помилка читання."  #: ../lib/isodumper.py:170  msgid "You have not the rights for writing on the device" -msgstr "" +msgstr "У вас немає прав доступу для запису на пристрій"  #: ../lib/isodumper.py:175  msgid "Writing " -msgstr "Запис " +msgstr "Записуємо "  #: ../lib/isodumper.py:175  msgid " to " -msgstr " до " +msgstr " на "  #: ../lib/isodumper.py:176 -#, fuzzy  msgid "Executing copy from " -msgstr "Виконання: dd if=" +msgstr "Виконуємо копіювання з "  #: ../lib/isodumper.py:192 -#, fuzzy  msgid "Writing error." -msgstr "Запис " +msgstr "Помилка під час спроби запису."  #: ../lib/isodumper.py:197  msgid "Wrote: " @@ -94,15 +92,15 @@ msgstr "Образ "  #: ../lib/isodumper.py:205  msgid " successfully written to" -msgstr " успішно записано до" +msgstr " успішно записано на"  #: ../lib/isodumper.py:206  msgid "Bytes written: " -msgstr "" +msgstr "Записано байтів: "  #: ../share/isodumper/isodumper.glade.h:1  msgid "IsoDumper" -msgstr "" +msgstr "IsoDumper"  #: ../share/isodumper/isodumper.glade.h:2  msgid "" @@ -114,14 +112,13 @@ msgid ""  " the device during the following operation."  msgstr ""  "<b>Попередження</b>\n" -"  Це призведе до <b>втрати всіх даних</b> \n" -"  на цільовому пристрої, ви хочете продовжити?\n" +"  Це призведе до <b>втрати усіх даних</b> \n" +"  на пристрої призначення, ви хочете продовжити?\n"  "\n" -"  Якщо Ви скажете ТАК, будь ласка, <b>не відключайте</b>\n" +"  Якщо ви підтвердите запис, будь ласка, <b>не демонтуйте</b>\n"  "  пристрій протягом наступної операції."  #: ../share/isodumper/isodumper.glade.h:8 -#, fuzzy  msgid ""  "<b>Error</b>\n"  " Something went wrong, please see the details\n" @@ -131,11 +128,12 @@ msgid ""  " homedir/.isodumper when the application is closed."  msgstr ""  "<b>Помилка</b>\n" -"  Щось пішло не так, будьласка, передивіться\n" -"  вікно деталей, щоб зрозуміти помилку.\n" +"  Щось пішло не так, будь ласка, ознайомтеся\n" +"  з подробицями, щоб визначити причину.\n"  " \n" -"  Файл журналу з вмістом помилки буде записано до\n" -"  Вашої домашньої теки, якщо додаток буде завершено." +"  Файл журналу isodumper.log з текстом повідомлень буде записано до\n" +"  вашої домашньої теки (підтека .isodumper), коли роботу програми буде\n" +"  завершено."  #: ../share/isodumper/isodumper.glade.h:14  msgid "Write Image:" @@ -143,7 +141,7 @@ msgstr "Записати образ:"  #: ../share/isodumper/isodumper.glade.h:15  msgid "Select an image file to be written to the device" -msgstr "Виберіть файл образу, що буде записано на пристрій" +msgstr "Виберіть файл образу, який буде записано на пристрій"  #: ../share/isodumper/isodumper.glade.h:16  msgid "Select Image" @@ -151,7 +149,7 @@ msgstr "Виберіть образ"  #: ../share/isodumper/isodumper.glade.h:17  msgid "to" -msgstr "до" +msgstr "на"  #: ../share/isodumper/isodumper.glade.h:18  msgid "Select target device to write the image to" @@ -163,11 +161,11 @@ msgstr " "  #: ../share/isodumper/isodumper.glade.h:20  msgid "Details" -msgstr "Докладніше" +msgstr "Подробиці"  #: ../share/isodumper/isodumper.glade.h:21  msgid "Write to device" -msgstr "Записати на пристрій:" +msgstr "Записати на пристрій"  #: ../share/isodumper/isodumper.glade.h:22  msgid "" @@ -178,13 +176,12 @@ msgid ""  " to which the image can be written."  msgstr ""  "<b>Помилка</b>\n" -"  Не знайдено цільового пристрою.  \n" +"  Не знайдено пристрою призначення.  \n"  "\n" -"  Піключіть USB пристрій,\n" -"  на який повинно записати образ." +"  З’єднайте з комп’ютером пристрій USB,\n" +"  на який слід записати образ."  #: ../share/isodumper/isodumper.glade.h:27 -#, fuzzy  msgid ""  "<b>Success</b>\n"  " The image was successfully written to the\n" @@ -195,12 +192,13 @@ msgid ""  " you close the application."  msgstr ""  "<b>Успіх</b>\n" -"  Образ успішно записано до \n" -"  цільового пристрою.\n" +"  Образ успішно записано на пристрій\n" +"  призначення.\n"  " \n" -"  Ви можете вільно вимкнути його,\n" -"  Файл журналу дій буде записнано до Вашої\n" -"  домашньої теки, якщо додаток буде закрито." +"  Ви можете від’єднати пристрій від комп’ютера.\n" +"  Файл журналу дій isodumper.log записано буде записано\n" +"  до теки .isodumper вашої домашньої теки, щойно роботу\n" +"  програми буде завершено."  #~ msgid "The dd process ended with an error !"  #~ msgstr "Виконання dd завершилось з помилкою!" diff --git a/share/applications/isodumper.desktop b/share/applications/isodumper.desktop index 990312e..877e624 100644 --- a/share/applications/isodumper.desktop +++ b/share/applications/isodumper.desktop @@ -4,6 +4,7 @@ Comment=A GUI tool to write .img and .iso files to USB Keys  Comment[fr]=Outil graphique pour écrire des fichiers .IMG et .ISO sur clés USB  Comment[de]=Ein Programm zum scheiben von *.img and *.iso Dateien auf USB-Sicks  Comment[pt]=Um Programa para gravar ficheiros *.img e *.iso em dispositivos USB +Comment[uk]=Програма з графічним інтерфейсом для запису файлів img та iso на носії USB  Icon=isodumper.png  Exec=isodumper  Type=Application diff --git a/tools/po-compile.sh b/tools/po-compile.sh new file mode 100644 index 0000000..2b4d364 --- /dev/null +++ b/tools/po-compile.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +cd "$(readlink -f "$(dirname "$0")/..")" + +find "$PWD/po" -type f -name '*.po' | \ +while read po_file; do +	language="$(basename "$po_file")" +	language="${language%.po}" +	target="$PWD/po/$language/LC_MESSAGES/isodumper.mo" +	/bin/mkdir --parents "$(dirname "$target")" +	/usr/bin/msgfmt \ +		--check \ +		--output-file="$target" \ +		"$po_file" +done diff --git a/tools/po-update.sh b/tools/po-update.sh new file mode 100755 index 0000000..27c2606 --- /dev/null +++ b/tools/po-update.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +if test -z "$1"; then +	echo "Use: $0 <locale>" +	exit 2 +fi +LL_CC="$1" +shift + +set -e + +cd "$(readlink -f "$(dirname "$0")/..")" + +VERSION=(0.1) +DOMAIN=(isodumper) + +SOURCE_FILES=$(/bin/mktemp --tmpdir $DOMAIN-po-update-XXXXXX) +find "lib" -name '*.py' >"$SOURCE_FILES" + +POT_DIR="$PWD/po" +test -d "$POT_DIR" + +POT_FILE="$POT_DIR/$DOMAIN.pot" + +/usr/bin/xgettext \ +	--package-name "$DOMAIN" \ +	--package-version "$VERSION" \ +	--default-domain="$L_NAME" \ +	--language=Python --from-code=UTF-8 --files-from="$SOURCE_FILES" \ +	--no-escape --indent --add-location --sort-by-file \ +	--add-comments=I18N \ +	--output="$POT_FILE" + +/bin/sed --in-place --expression="s/charset=CHARSET/charset=UTF-8/" "$POT_FILE" + +PO_FILE="$POT_DIR/$LL_CC.po" + +test -r "$PO_FILE" || /usr/bin/msginit \ +		--no-translator --locale="$LL_CC" \ +		--input="$POT_FILE" \ +		--output-file="$PO_FILE" + +#unfmt() { +#	local SOURCE="/usr/share/locale/$LL_CC/LC_MESSAGES/$1.mo" +#	if [ ! -f $SOURCE ] +#	then +#            local SOURCE="/usr/share/locale-langpack/$LL_CC/LC_MESSAGES/$1.mo" +#	fi +#	local TARGET="$(mktemp --tmpdir $1-$LL_CC-XXXXXX.po)" +#	/usr/bin/msgunfmt \ +#		--no-escape --indent \ +#		--output-file="$TARGET" \ +#		"$SOURCE" +#	echo "$TARGET" +#} + +#/usr/bin/msgmerge \ +#	--update --no-fuzzy-matching \ +#	--no-escape --indent --add-location --sort-by-file \ +#	--lang="$LL_CC" \ +#	--compendium="$(unfmt gtk30)" \ +#	--compendium="$(unfmt gtk30-properties)" \ +#	"$PO_FILE" "$POT_FILE" + +# /bin/sed --in-place --expression="s/Language: \\\\n/Language: $L_NAME\\\\n/" "$PO_FILE" + +echo "Language file is $PO_FILE" | 
