Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logout module = effective "deactivated" #13

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
717c2b3
add notices
MartinKreizl Nov 23, 2023
ef1aff6
module settings - add success message
MartinKreizl Dec 5, 2023
3e39b65
translate phrases added + files with test translates uploaded
kubaanec1 Dec 7, 2023
3290c9e
phrases added + CS translate updated + files renamed
kubaanec1 Dec 12, 2023
96be9d8
languages added
kubaanec1 Dec 12, 2023
5a9e404
languages added + updates
kubaanec1 Dec 13, 2023
2c3267c
PT added
kubaanec1 Dec 13, 2023
215810f
translates added + updates
kubaanec1 Dec 13, 2023
c4d4ad2
updates
kubaanec1 Dec 13, 2023
cfccf13
update
kubaanec1 Dec 14, 2023
c4dfa11
languages added
kubaanec1 Dec 14, 2023
8993d9a
translates added
kubaanec1 Dec 14, 2023
39443b6
translates added
kubaanec1 Dec 14, 2023
522e6e2
translates added - files uploaded
kubaanec1 Dec 14, 2023
99ae689
translates added
kubaanec1 Dec 14, 2023
c1bc9c9
translates added
kubaanec1 Dec 14, 2023
2b96a1e
translates added
kubaanec1 Dec 14, 2023
17adb0b
translates added
kubaanec1 Dec 14, 2023
1b6030e
translates added
kubaanec1 Dec 14, 2023
e8a9efc
update
kubaanec1 Dec 15, 2023
46f2691
translate for Island added + updates
kubaanec1 Dec 15, 2023
14ef4ae
tmp...
kubaanec1 Dec 18, 2023
68f7557
.mo files removed from git
kubaanec1 Dec 18, 2023
77fa30f
.po files updated - duplicate keys deleted
kubaanec1 Dec 18, 2023
fce13c1
automation
kubaanec1 Dec 18, 2023
10c6b67
...
kubaanec1 Dec 18, 2023
759c528
...
kubaanec1 Dec 18, 2023
6dfea4e
script moved from release.yml to composer.json
kubaanec1 Dec 20, 2023
b86f7c1
.po files updated + .pot file created + scripts added
kubaanec1 Dec 20, 2023
2fc5423
options updated to output null-terminated lines to deal with spaces a…
kubaanec1 Dec 21, 2023
171ea11
readme created
kubaanec1 Dec 21, 2023
4db547c
Merge branch 'master' into logout-module-notices
kubaanec1 Dec 21, 2023
24bf55c
readme updated
kubaanec1 Dec 21, 2023
24b8a38
readme updated
kubaanec1 Dec 22, 2023
7708d46
Merge pull request #19 from kubaanec1/logout-module-notices
MartinKreizl Jan 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,21 @@ jobs:
- name: Install packages
run: composer install --prefer-dist --no-progress --no-suggest --no-dev

- name: Install gettext
run: sudo apt update && sudo apt install -y gettext

- name: Compile .MO files
run: composer run translates:compile

- name: Create plugin directory
run: mkdir -p /tmp/woosms-sms-module-for-woocommerce

- name: Copy plugin files
run: cp -r assets src vendor .compatibility.php LICENSE readme.txt woosms-* /tmp/woosms-sms-module-for-woocommerce
run: cp -r --parents assets languages/*.mo src vendor .compatibility.php LICENSE readme.txt woosms-* /tmp/woosms-sms-module-for-woocommerce

- name: Create plugin zip
run: cd /tmp && zip -r woosms-sms-module-for-woocommerce.zip woosms-sms-module-for-woocommerce
run: zip -r woosms-sms-module-for-woocommerce.zip woosms-sms-module-for-woocommerce
working-directory: /tmp

- name: Add archive to release
run: gh release upload ${{github.ref_name}} /tmp/woosms-sms-module-for-woocommerce.zip
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ composer.lock
coverage.html
tests/**/output/*.actual
tests/**/output/*.expected
languages/*.mo
6 changes: 5 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@
"scripts": {
"tester": "tester -C tests --colors=1",
"coverage": "tester -C --coverage=coverage.html --coverage-src=src --stop-on-fail",
"phpstan": "phpstan analyse -c phpstan.neon --memory-limit=1G"
"phpstan": "phpstan analyse -c phpstan.neon --memory-limit=1G",
"translates:extract": "git ls-files \"*.php\" | xgettext --language=PHP --keyword=esc_html__ --keyword=esc_html_e --keyword=esc_attr__ --keyword=esc_attr_e --keyword=__ --keyword=_e --no-wrap --from-code=UTF-8 --output=languages/template.pot -f -",
"translates:update": "git ls-files -z \"languages/*.po\" | xargs -0 -I {} msgmerge --no-wrap -o {} {} languages/template.pot",
"translates:compile": "for file in languages/*.po; do msgfmt -o \"${file%.po}.mo\" \"$file\"; done",
"translates": ["@translates:extract", "@translates:update", "@translates:compile"]
},
"config": {
"allow-plugins": {
Expand Down
9 changes: 9 additions & 0 deletions languages/CustomTranslations.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

/**
* Translations that are not in the code. This file was created to translate Description and Plugin Name used in woosms-sms-module-for-woocommerce.php file comment that is displayed in BulkGate plugin in WordPress.
*/

_e('BulkGate SMS Plugin for WooCommerce','woosms-sms-module-for-woocommerce');
_e('Notify your customers about order status via SMS notifications.','woosms-sms-module-for-woocommerce');

38 changes: 38 additions & 0 deletions languages/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Proces vytváření překladů

Podle potřeby můžete kombinovat oba způsoby vytváření překladů.

Zdroje:

- https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/
- https://codex.wordpress.org/I18n_for_WordPress_Developers
- https://www.gnu.org/software/gettext/manual/html_node/

## Překlad pomocí skriptů - automatizace
1. **Získání překladů** - Obalte všechny fráze, které chcete přeložit do některé z následujících překladových funkcí: `__()`, `esc_html__()`, `esc_attr__()`, `_e()`, `esc_html_e()`, `esc_attr_e()` [viz dokumentace](https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/#localization-functions). Načtěte ze zdrojového kódu fráze pomocí příkazu: `composer run translates:extract`, který uloží vyextrahované fráze do šablony `template.pot` v adresáři `/languages` do pole `msgid ""`. Pole `msgstring ""` zůstane prázdné. Tento POT soubor (soubor s příponou `.pot`; Portable Object Template) se předá překladateli na překlad nebo se v našem případě přeloží pomocí ChatGPT do daného jazyka (zkopírujeme obsah souboru a necháme ChatGPT, aby naplnil pole `msgstr ""` překlady pro námi zvolený jazyk. Soubor uložíme jako PO soubor (soubor s příponou `.po`; Portable Object) do adresáře `/languages`. Tento PO soubor musí mít název pluginu a kód jazyka pro danou lokalizaci (např.: `woosms-sms-module-for-woocommerce-cs.po` nebo `woosms-sms-module-for-woocommerce-cs_CZ.po` pro češtinu) [viz dokumentace](https://developer.wordpress.org/plugins/internationalization/localization/#using-localizations).
2. **Aktualizace překladů** - Pokud potřebujeme přidat do pluginu nové fráze, provedeme krok číslo 1. Pak pomocí příkazu `composer run translates:update` vložíme nové fráze z aktualizovaného POT souboru do existujících PO souborů. Ty jsou samozřejmě nepřeložené a je potřeba je přeložit.
3. **Kompilace překladů** - Aby mohli být překlady v pluginu použity musí se PO soubory zkompilovat do MO souborů (soubory s příponou `.mo`; Machine Objects). To provedeme příkazem `composer run translates:compile`. Ten je vytvoří v adresáři `/languages`. Tyto soubory v gitu netrackujeme, slouží k testování překladů v lokálním prostředí.
4. **Vložení nového jazyka** - Nejjednodušší způsob jak vytvořit překlad do nového jazyka je zkopírovat kterýkoli, pro jiný jazyk vytvořený `.po` soubor, změnit jeho název - kód země (první část názvu `woosms-sms-module-for-woocommerce` je povinná), údaje v hlavičce (`Language:` a `Plural forms:`) a nahraďit všechna pole `msgstring` novými překlady. Nebo použijte šablonu `template.pot` a spusťte příkaz `msginit --locale=fr_CA --input=languages/template.pot --output=languages/woosms-sms-module-for-woocommerce-fr_CA.po`, který inicializuje metainformace v hlavičce hodnotami z uživatelského prostředí (např.: do hlavičky automaticky doplní hodnotu `Plural forms:`, ale je třeba upravit `Content-type:` charset=UTF-8)

## Překlad pomocí programu Poedit - manuální překlad
### Vložení nového jazyka
1. Otevřete nástroj Poedit (zdarma ke stažení na adrese https://poedit.net/download).
2. `Soubor->Nový` (`CTRL + N`)
3. Vyberte jazyk překladu ze seznamu pro vybranou zemi (např.: kanadská francouzština) a potvrďte - `OK`.
4. Uložte soubor (`CTRL + S`) - zobrazí se dialogové okno `Uložit jako`. Vložte textový název domény s kódem jazyka a země (např.: `woosms-sms-module-for-woocommerce-fr_CA.po`). Vyberte adresář v rámci vašeho projektu, kam má být soubor uložen (`/languages`)
5. Uložte
6. V PhpStormu přejděte do adresáře s překlady (`/languages`) a zkopírujte obsah libovolného již přeloženého `.po` souboru i s hlavičkou.
7. Přejděte do ChatGPT a vložte
8. V ChatGPT nechte přeložit obsah `.po` souboru (s vyplněnými `msgid "Original text"`) do vybraného jazyka. Přeložené texty se doplní do `msgstr "Přeložený text"`.
9. Zkopírujte výstup a vložte jej do souboru vybraného jazyka (`woosms-sms-module-for-woocommerce-fr_CA.po`) v adresáři `/languages`. Poeditem automaticky vygenerovaná hlavička je nahrazena.
10. Přepněte se zpět do Poeditu, kde se objeví nové překlady. Překlady zkontrolujte, popřípadě upravte.
11. Uložte (pokud máte v `Soubor->Nastavení->Obecné->Editace` zaškrtnutou volbu `Při uložení automaticky zkompilovat MO soubor` vytvoří se vám ve stejném adresáři nový zkompilovaný `woosms-sms-module-for-woocommerce-fr_CA.mo` soubor)
12. Pokud nechcete `.mo` soubory ukládat (tyto soubory v gitu netrackujeme, slouží například pro testováni na localhostu) zrušte zaškrtnutí této volby.
13. Při instalaci pluginu se .po soubory automaticky zkompilují do .mo formátu (release.yml) - GitHub Actions

### Doplnění nové fráze do již existujícího jazyka
1. Ve zdrojovém kódu souboru (například Meta.php) vložte novou frázi v angličtině (EN slouží jako default v případě, že nemáme překlad do daného jazyka) do překladové funkce podle použití - např.: `esc_html__('New translation')` (dokumentace funkcí zde - https://developer.wordpress.org/reference/functions/)
2. Otevřete program Poedit a otevřete soubor s překladem v jazyce, který chcete překládat (např.: `woosms-sms-module-for-woocommerce-fr_CA.po`).
3. Dejte `Překlad->Aktualizovat za zdrojového kódu` nebo klikněte na tlačítko `Aktualizovat z kódu`. V dialogovém okně `Výsledek aktualizace` potvrďte vložení nového řetězce.
4. Přeložte nebo uložte a dejte na překlad.
5. Uložte soubor.
94 changes: 94 additions & 0 deletions languages/template.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-12-20 16:55+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: languages/CustomTranslations.php:7
msgid "BulkGate SMS Plugin for WooCommerce"
msgstr ""

#: languages/CustomTranslations.php:8
msgid "Notify your customers about order status via SMS notifications."
msgstr ""

#: src/Debug/Page.php:21
msgid "BulkGate Debug"
msgstr ""

#: src/Debug/Page.php:22
msgid "This page serves as a comprehensive tool for users to monitor, analyze, and troubleshoot the plugin, including tracking errors in the log. It also provides essential information and troubleshooting capabilities."
msgstr ""

#: src/Debug/Page.php:26
msgid "Requirements test"
msgstr ""

#: src/Debug/Page.php:73
msgid "Error log"
msgstr ""

#: src/Event/Cron.php:28
msgid "BulkGate Sending Interval"
msgstr ""

#: src/Event/Cron.php:33
msgid "BulkGate Synchronize Interval"
msgstr ""

#: src/Template/Init.php:58
msgid "You must be logged in to get the plugin working."
msgstr ""

#: src/Template/Init.php:58
msgid "Log in"
msgstr ""

#: src/Utils/Meta.php:33
msgid "Help Desk"
msgstr ""

#: src/Utils/Meta.php:34
msgid "Price List"
msgstr ""

#: src/Utils/Meta.php:35
msgid "YouTube Channel"
msgstr ""

#: src/Utils/Meta.php:36
msgid "Contact us"
msgstr ""

#: src/Utils/Meta.php:39
msgid "Terms of Service"
msgstr ""

#: src/Utils/Meta.php:40
msgid "Privacy Policy"
msgstr ""

#: src/Utils/Meta.php:57
msgid "Debug"
msgstr ""

#: src/Utils/Meta.php:61
msgid "Log In"
msgstr ""

#: src/Utils/Meta.php:65
msgid "Settings"
msgstr ""
93 changes: 93 additions & 0 deletions languages/woosms-sms-module-for-woocommerce-ar.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-12-20 16:55+0000\n"
"PO-Revision-Date: 2023-12-14 13:59+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"X-Generator: Poedit 3.4.1\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: __;esc_html__;esc_attr__;_e;esc_html_e;esc_attr_e\n"
"X-Poedit-SearchPath-0: .\n"

#: languages/CustomTranslations.php:7
msgid "BulkGate SMS Plugin for WooCommerce"
msgstr "إضافة BulkGate للرسائل النصية لـ WooCommerce"

#: languages/CustomTranslations.php:8
msgid "Notify your customers about order status via SMS notifications."
msgstr "أبلغ عملاءك بحالة الطلب عبر إشعارات الرسائل النصية."

#: src/Debug/Page.php:21
msgid "BulkGate Debug"
msgstr "BulkGate تصحيح"

#: src/Debug/Page.php:22
msgid "This page serves as a comprehensive tool for users to monitor, analyze, and troubleshoot the plugin, including tracking errors in the log. It also provides essential information and troubleshooting capabilities."
msgstr "تعتبر هذه الصفحة أداة شاملة للمستخدمين لمراقبة وتحليل وتتبع الأخطاء في البرنامج المساعد ، بما في ذلك تتبع الأخطاء في السجل. كما توفر معلومات أساسية وإمكانيات حل المشكلات."

#: src/Debug/Page.php:26
msgid "Requirements test"
msgstr "اختبار المتطلبات"

#: src/Debug/Page.php:73
msgid "Error log"
msgstr "سجل الأخطاء"

#: src/Event/Cron.php:28
msgid "BulkGate Sending Interval"
msgstr "فاصل إرسال BulkGate"

#: src/Event/Cron.php:33
msgid "BulkGate Synchronize Interval"
msgstr "فاصل التزامن BulkGate"

#: src/Template/Init.php:58
msgid "You must be logged in to get the plugin working."
msgstr "يجب أن تكون مسجلاً لتشغيل البرنامج المساعد."

#: src/Template/Init.php:58
msgid "Log in"
msgstr "تسجيل الدخول"

#: src/Utils/Meta.php:33
msgid "Help Desk"
msgstr "مكتب المساعدة"

#: src/Utils/Meta.php:34
msgid "Price List"
msgstr "قائمة الأسعار"

#: src/Utils/Meta.php:35
msgid "YouTube Channel"
msgstr "قناة يوتيوب"

#: src/Utils/Meta.php:36
msgid "Contact us"
msgstr "اتصل بنا"

#: src/Utils/Meta.php:39
msgid "Terms of Service"
msgstr "شروط الخدمة"

#: src/Utils/Meta.php:40
msgid "Privacy Policy"
msgstr "سياسة الخصوصية"

#: src/Utils/Meta.php:57
msgid "Debug"
msgstr "تصحيح"

#: src/Utils/Meta.php:61
msgid "Log In"
msgstr "تسجيل الدخول"

#: src/Utils/Meta.php:65
msgid "Settings"
msgstr "الإعدادات"
93 changes: 93 additions & 0 deletions languages/woosms-sms-module-for-woocommerce-bg_BG.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-12-20 16:55+0000\n"
"PO-Revision-Date: 2023-12-14 12:11+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: bg_BG\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.4.1\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: __;esc_html__;esc_attr__;_e;esc_html_e;esc_attr_e\n"
"X-Poedit-SearchPath-0: .\n"

#: languages/CustomTranslations.php:7
msgid "BulkGate SMS Plugin for WooCommerce"
msgstr "BulkGate SMS Плъгин за WooCommerce"

#: languages/CustomTranslations.php:8
msgid "Notify your customers about order status via SMS notifications."
msgstr "Уведомявайте клиентите си за статуса на поръчката чрез SMS уведомления."

#: src/Debug/Page.php:21
msgid "BulkGate Debug"
msgstr "Отстраняване на грешки BulkGate"

#: src/Debug/Page.php:22
msgid "This page serves as a comprehensive tool for users to monitor, analyze, and troubleshoot the plugin, including tracking errors in the log. It also provides essential information and troubleshooting capabilities."
msgstr "Тази страница служи като комплексен инструмент за потребителите за наблюдение, анализ и отстраняване на проблеми с плъгина, включително проследяване на грешки в дневника. Тя предоставя също важна информация и възможности за отстраняване на неизправности."

#: src/Debug/Page.php:26
msgid "Requirements test"
msgstr "Тест на изискванията"

#: src/Debug/Page.php:73
msgid "Error log"
msgstr "Дневник на грешките"

#: src/Event/Cron.php:28
msgid "BulkGate Sending Interval"
msgstr "Интервал за изпращане на BulkGate"

#: src/Event/Cron.php:33
msgid "BulkGate Synchronize Interval"
msgstr "Интервал за синхронизация на BulkGate"

#: src/Template/Init.php:58
msgid "You must be logged in to get the plugin working."
msgstr "Трябва да сте влезли в системата, за да използвате плъгина."

#: src/Template/Init.php:58
msgid "Log in"
msgstr "Вход"

#: src/Utils/Meta.php:33
msgid "Help Desk"
msgstr "Център за помощ"

#: src/Utils/Meta.php:34
msgid "Price List"
msgstr "Ценова листа"

#: src/Utils/Meta.php:35
msgid "YouTube Channel"
msgstr "Канал в YouTube"

#: src/Utils/Meta.php:36
msgid "Contact us"
msgstr "Свържете се с нас"

#: src/Utils/Meta.php:39
msgid "Terms of Service"
msgstr "Условия за ползване"

#: src/Utils/Meta.php:40
msgid "Privacy Policy"
msgstr "Политика за поверителност"

#: src/Utils/Meta.php:57
msgid "Debug"
msgstr "Отстраняване на грешки"

#: src/Utils/Meta.php:61
msgid "Log In"
msgstr "Вход"

#: src/Utils/Meta.php:65
msgid "Settings"
msgstr "Настройки"
Loading
Loading