diff options
| author | 2022-01-08 08:00:26 -0500 | |
|---|---|---|
| committer | 2022-01-08 14:00:26 +0100 | |
| commit | 127b7f0a3aad7012055c058e8aba0d27192a8cbc (patch) | |
| tree | 8ec9a5948672e702c944c202f78294b81104582f /app/i18n/de | |
| parent | ed19445f74c30854c60873cd1df1c38e15fc316b (diff) | |
Change i18n process (#4131)
Before, the ignore info were stored in a different file which was a bit cumbersome
for new comers. Now, this info is stored directly in the translation file as a
comment.
Before, there was no way of telling translators that a previously translated string
was in need of a new translation. Now, the dirty information is there to convey that
info.
Diffstat (limited to 'app/i18n/de')
| -rw-r--r-- | app/i18n/de/admin.php | 20 | ||||
| -rw-r--r-- | app/i18n/de/conf.php | 28 | ||||
| -rw-r--r-- | app/i18n/de/feedback.php | 10 | ||||
| -rw-r--r-- | app/i18n/de/gen.php | 102 | ||||
| -rw-r--r-- | app/i18n/de/index.php | 14 | ||||
| -rw-r--r-- | app/i18n/de/install.php | 14 | ||||
| -rw-r--r-- | app/i18n/de/sub.php | 20 | ||||
| -rw-r--r-- | app/i18n/de/user.php | 10 |
8 files changed, 149 insertions, 69 deletions
diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php index a7778d46e..6f8164575 100644 --- a/app/i18n/de/admin.php +++ b/app/i18n/de/admin.php @@ -1,5 +1,15 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'auth' => array( 'allow_anonymous' => 'Anonymes Lesen der Artikel des Standardbenutzers (%s) erlauben', @@ -108,7 +118,7 @@ return array( 'empty_list' => 'Es gibt keine installierte Erweiterung.', 'enabled' => 'Aktiviert', 'latest' => 'Installiert', - 'name' => 'Name', + 'name' => 'Name', // IGNORE 'no_configure_view' => 'Diese Erweiterung kann nicht konfiguriert werden.', 'system' => array( '_' => 'System-Erweiterungen', @@ -117,7 +127,7 @@ return array( 'title' => 'Erweiterungen', 'update' => 'Update verfügbar', 'user' => 'Benutzer-Erweiterungen', - 'version' => 'Version', + 'version' => 'Version', // IGNORE ), 'stats' => array( '_' => 'Statistiken', @@ -130,7 +140,7 @@ return array( 'entry_per_hour' => 'Pro Stunde (Durchschnitt: %.2f Nachrichten)', 'entry_per_month' => 'Pro Monat (Durchschnitt: %.2f Nachrichten)', 'entry_repartition' => 'Einträge-Verteilung', - 'feed' => 'Feed', + 'feed' => 'Feed', // IGNORE 'feed_per_category' => 'Feeds pro Kategorie', 'idle' => 'Inaktive Feeds', 'main' => 'Haupt-Statistiken', @@ -172,14 +182,14 @@ return array( 'title' => 'System aktualisieren', ), 'user' => array( - 'admin' => 'Administrator', + 'admin' => 'Administrator', // IGNORE 'article_count' => 'Artikel', 'back_to_manage' => '← Zurück zur Benutzerliste', 'create' => 'Neuen Benutzer erstellen', 'database_size' => 'Datenbankgröße', 'email' => 'E-Mail-Adresse', 'enabled' => 'Aktiviert', - 'feed_count' => 'Feeds', + 'feed_count' => 'Feeds', // IGNORE 'is_admin' => 'Ist Administrator', 'language' => 'Sprache', 'last_user_activity' => 'Letzte Benutzeraktivität', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index 29057a150..0277dcba6 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -1,5 +1,15 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'archiving' => array( '_' => 'Archivierung', @@ -86,7 +96,7 @@ return array( 'get_category' => 'Kategorie "%s" anzeigen', 'get_favorite' => 'Lieblingsartikel anzeigen', 'get_feed' => 'Feed "%s" anzeigen', - 'name' => 'Name', + 'name' => 'Name', // IGNORE 'no_filter' => 'Kein Filter', 'number' => 'Abfrage Nr. %d', 'order_asc' => 'Älteste Artikel zuerst anzeigen', @@ -163,20 +173,20 @@ return array( 'sharing' => array( '_' => 'Teilen', 'add' => 'Füge eine Teilen-Dienst hinzu', - 'blogotext' => 'Blogotext', - 'diaspora' => 'Diaspora*', + 'blogotext' => 'Blogotext', // IGNORE + 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-Mail', - 'facebook' => 'Facebook', + 'facebook' => 'Facebook', // IGNORE 'more_information' => 'Weitere Informationen', 'print' => 'Drucken', - 'raindrop' => 'Raindrop.io', + 'raindrop' => 'Raindrop.io', // IGNORE 'remove' => 'Entferne Teilen-Dienst', - 'shaarli' => 'Shaarli', + 'shaarli' => 'Shaarli', // IGNORE 'share_name' => 'Anzuzeigender Teilen-Name', 'share_url' => 'Zu verwendende Teilen-URL', 'title' => 'Teilen', - 'twitter' => 'Twitter', - 'wallabag' => 'wallabag', + 'twitter' => 'Twitter', // IGNORE + 'wallabag' => 'wallabag', // IGNORE ), 'shortcut' => array( '_' => 'Tastenkombination', @@ -194,7 +204,7 @@ return array( 'load_more' => 'Weitere Artikel laden', 'mark_favorite' => 'Als Favorit auswählen/entfernen', 'mark_read' => 'Als (un-)gelesen markieren', - 'navigation' => 'Navigation', + 'navigation' => 'Navigation', // IGNORE 'navigation_help' => 'Mit der <kbd>⇧ Umschalttaste</kbd> finden die Tastenkombination auf Feeds Anwendung.<br/>Mit der <kbd>Alt ⎇</kbd>-Taste finden die Tastenkombination auf Kategorien Anwendung.', 'navigation_no_mod_help' => 'Die folgenden Navigationsverknüpfungen unterstützen keine Modifikatoren.', 'next_article' => 'Zum nächsten Artikel springen', diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php index f2abcd107..fac2c2eea 100644 --- a/app/i18n/de/feedback.php +++ b/app/i18n/de/feedback.php @@ -1,5 +1,15 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'access' => array( 'denied' => 'Sie haben nicht die Berechtigung, diese Seite aufzurufen', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index a2fe85882..ce97d15f7 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -1,5 +1,15 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'action' => array( 'actualize' => 'Feeds aktualisieren', @@ -48,8 +58,8 @@ return array( ), ), 'date' => array( - 'Apr' => '\\A\\p\\r\\i\\l', - 'Aug' => '\\A\\u\\g\\u\\s\\t', + 'Apr' => '\\A\\p\\r\\i\\l', // IGNORE + 'Aug' => '\\A\\u\\g\\u\\s\\t', // IGNORE 'Dec' => '\\D\\e\\z\\e\\m\\b\\e\\r', 'Feb' => '\\F\\e\\b\\r\\u\\a\\r', 'Jan' => '\\J\\a\\n\\u\\a\\r', @@ -57,13 +67,13 @@ return array( 'Jun' => '\\J\\u\\n\\i', 'Mar' => '\\M\\ä\\r\\z', 'May' => '\\M\\a\\i', - 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r', + 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r', // IGNORE 'Oct' => '\\O\\k\\t\\o\\b\\e\\r', - 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r', + 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r', // IGNORE 'apr' => 'Apr', - 'april' => 'April', + 'april' => 'April', // IGNORE 'aug' => 'Aug', - 'august' => 'August', + 'august' => 'August', // IGNORE 'before_yesterday' => 'Ältere Beiträge', 'dec' => 'Dez', 'december' => 'Dezember', @@ -93,12 +103,12 @@ return array( 'mon' => 'Mo', 'month' => 'Monat(en)', 'nov' => 'Nov', - 'november' => 'November', + 'november' => 'November', // IGNORE 'oct' => 'Okt', 'october' => 'Oktober', 'sat' => 'Sa', 'sep' => 'Sep', - 'september' => 'September', + 'september' => 'September', // IGNORE 'sun' => 'So', 'thu' => 'Do', 'today' => 'Heute', @@ -106,9 +116,9 @@ return array( 'wed' => 'Mi', 'yesterday' => 'Gestern', ), - 'dir' => 'ltr', + 'dir' => 'ltr', // IGNORE 'freshrss' => array( - '_' => 'FreshRSS', + '_' => 'FreshRSS', // IGNORE 'about' => 'Über FreshRSS', ), 'js' => array( @@ -124,29 +134,29 @@ return array( 'should_be_activated' => 'JavaScript muss aktiviert sein', ), 'lang' => array( - 'cz' => 'Čeština', - 'de' => 'Deutsch', - 'en' => 'English', - 'en-us' => 'English (United States)', - 'es' => 'Español', - 'fr' => 'Français', - 'he' => 'עברית', - 'it' => 'Italiano', - 'ja' => '日本語', - 'ko' => '한국어', - 'nl' => 'Nederlands', - 'oc' => 'Occitan', - 'pl' => 'Polski', - 'pt-br' => 'Português (Brasil)', - 'ru' => 'Русский', - 'sk' => 'Slovenčina', - 'tr' => 'Türkçe', - 'zh-cn' => '简体中文', + 'cz' => 'Čeština', // IGNORE + 'de' => 'Deutsch', // IGNORE + 'en' => 'English', // IGNORE + 'en-us' => 'English (United States)', // IGNORE + 'es' => 'Español', // IGNORE + 'fr' => 'Français', // IGNORE + 'he' => 'עברית', // IGNORE + 'it' => 'Italiano', // IGNORE + 'ja' => '日本語', // IGNORE + 'ko' => '한국어', // IGNORE + 'nl' => 'Nederlands', // IGNORE + 'oc' => 'Occitan', // IGNORE + 'pl' => 'Polski', // IGNORE + 'pt-br' => 'Português (Brasil)', // IGNORE + 'ru' => 'Русский', // IGNORE + 'sk' => 'Slovenčina', // IGNORE + 'tr' => 'Türkçe', // IGNORE + 'zh-cn' => '简体中文', // IGNORE ), 'menu' => array( 'about' => 'Über', - 'account' => 'Account', - 'admin' => 'Administration', + 'account' => 'Account', // IGNORE + 'admin' => 'Administration', // IGNORE 'archiving' => 'Archivierung', 'authentication' => 'Authentifizierung', 'check_install' => 'Installationsüberprüfung', @@ -183,25 +193,25 @@ return array( ), 'share' => array( 'Known' => 'Known-Seite (https://withknown.com)', - 'blogotext' => 'Blogotext', + 'blogotext' => 'Blogotext', // IGNORE 'clipboard' => 'Zwischenablage', - 'diaspora' => 'Diaspora*', + 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-Mail', - 'facebook' => 'Facebook', - 'gnusocial' => 'GNU social', - 'jdh' => 'Journal du hacker', - 'lemmy' => 'Lemmy', - 'linkedin' => 'LinkedIn', - 'mastodon' => 'Mastodon', - 'movim' => 'Movim', - 'pinboard' => 'Pinboard', - 'pocket' => 'Pocket', + 'facebook' => 'Facebook', // IGNORE + 'gnusocial' => 'GNU social', // IGNORE + 'jdh' => 'Journal du hacker', // IGNORE + 'lemmy' => 'Lemmy', // IGNORE + 'linkedin' => 'LinkedIn', // IGNORE + 'mastodon' => 'Mastodon', // IGNORE + 'movim' => 'Movim', // IGNORE + 'pinboard' => 'Pinboard', // IGNORE + 'pocket' => 'Pocket', // IGNORE 'print' => 'Drucken', - 'raindrop' => 'Raindrop.io', - 'shaarli' => 'Shaarli', - 'twitter' => 'Twitter', - 'wallabag' => 'wallabag v1', - 'wallabagv2' => 'wallabag v2', + 'raindrop' => 'Raindrop.io', // IGNORE + 'shaarli' => 'Shaarli', // IGNORE + 'twitter' => 'Twitter', // IGNORE + 'wallabag' => 'wallabag v1', // IGNORE + 'wallabagv2' => 'wallabag v2', // IGNORE ), 'short' => array( 'attention' => 'Achtung!', diff --git a/app/i18n/de/index.php b/app/i18n/de/index.php index ff38dc4de..6cc8481bd 100644 --- a/app/i18n/de/index.php +++ b/app/i18n/de/index.php @@ -1,9 +1,19 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'about' => array( '_' => 'Über', - 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>', + 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>', // IGNORE 'bugs_reports' => 'Fehlerberichte', 'credits' => 'Mitwirkende', 'credits_content' => 'Einige Designelemente stammen von <a href="http://twitter.github.io/bootstrap/">Bootstrap</a>, obwohl FreshRSS dieses Framework nicht nutzt. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> stammen vom <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> Font wurde von <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a> erstellt. FreshRSS basiert auf <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, einem PHP-Framework.', @@ -12,7 +22,7 @@ return array( 'license' => 'Lizenz', 'project_website' => 'Projekt-Website', 'title' => 'Über', - 'version' => 'Version', + 'version' => 'Version', // IGNORE ), 'feed' => array( 'add' => 'Sie können Feeds hinzufügen.', diff --git a/app/i18n/de/install.php b/app/i18n/de/install.php index 1ebbd7bf9..dfc1c8b9b 100644 --- a/app/i18n/de/install.php +++ b/app/i18n/de/install.php @@ -1,5 +1,15 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'action' => array( 'finish' => 'Installation fertigstellen', @@ -23,7 +33,7 @@ return array( 'ko' => 'Überprüfen Sie Ihre Datenbank-Information.', 'ok' => 'Datenbank-Konfiguration ist gespeichert worden.', ), - 'host' => 'Host', + 'host' => 'Host', // IGNORE 'password' => 'Datenbank-Password', 'prefix' => 'Tabellen-Präfix', 'type' => 'Datenbank-Typ', @@ -119,5 +129,5 @@ return array( 'step' => 'Schritt %d', 'steps' => 'Schritte', 'this_is_the_end' => 'Das ist das Ende', - 'title' => 'Installation · FreshRSS', + 'title' => 'Installation · FreshRSS', // IGNORE ); diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index 21d1b18db..2b52b59ee 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -1,21 +1,31 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'api' => array( 'documentation' => 'Kopieren Sie die folgende URL, um sie in einem externen Tool zu verwenden.', - 'title' => 'API', + 'title' => 'API', // IGNORE ), 'bookmarklet' => array( 'documentation' => 'Ziehen Sie diese Schaltfläche auf Ihre Lesezeichen-Symbolleiste oder klicken Sie mit der rechten Maustaste darauf und wählen Sie "Als Lesezeichen hinzufügen". Klicken Sie dann auf einer beliebigen Seite, die Sie abonnieren möchten, auf die Schaltfläche "Abonnieren".', 'label' => 'Abonnieren', - 'title' => 'Bookmarklet', + 'title' => 'Bookmarklet', // IGNORE ), 'category' => array( '_' => 'Kategorie', 'add' => 'Kategorie hinzufügen', 'archiving' => 'Archivierung', 'empty' => 'Leere Kategorie', - 'information' => 'Information', + 'information' => 'Information', // IGNORE 'position' => 'Reihenfolge', 'position_help' => 'Steuert die Kategoriesortierung', 'title' => 'Titel', @@ -49,7 +59,7 @@ return array( '_' => 'Filteraktionen', 'help' => 'Ein Suchfilter pro Zeile', ), - 'information' => 'Information', + 'information' => 'Information', // IGNORE 'keep_min' => 'Minimale Anzahl an Artikeln, die behalten wird', 'maintenance' => array( 'clear_cache' => 'Zwischenspeicher leeren', @@ -120,7 +130,7 @@ return array( 'subscription_tools' => 'Abonnement-Tools', ), 'tag' => array( - 'name' => 'Name', + 'name' => 'Name', // IGNORE 'new_name' => 'Neuer Name', 'old_name' => 'Alter Name', ), diff --git a/app/i18n/de/user.php b/app/i18n/de/user.php index d26c78e72..20af9884c 100644 --- a/app/i18n/de/user.php +++ b/app/i18n/de/user.php @@ -1,5 +1,15 @@ <?php +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + return array( 'email' => array( 'feedback' => array( |
