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" |