From 19eb60bd62fcd9be8e3fe7880a316f1f2bd699d4 Mon Sep 17 00:00:00 2001 From: Andreas Lang <73597785+AndreasLang50@users.noreply.github.com> Date: Sat, 21 Nov 2020 00:10:34 +0100 Subject: [PATCH] Added i18n support (#48) --- lang/de.yml | 40 +++++++++ lang/en.yml | 40 +++++++++ src/Extension/BetterNavigatorExtension.php | 17 +++- templates/BetterNavigator/BetterNavigator.ss | 95 +++++++++++++++----- 4 files changed, 166 insertions(+), 26 deletions(-) create mode 100644 lang/de.yml create mode 100644 lang/en.yml diff --git a/lang/de.yml b/lang/de.yml new file mode 100644 index 0000000..99bd9f3 --- /dev/null +++ b/lang/de.yml @@ -0,0 +1,40 @@ +de: + JonoM\BetterNavigator: + VIEWING_LIVE: 'Live' + VIEWING_DRAFT: 'Entwurf' + VIEWING_ARCHIVED: 'Archiviert' + + DEVELOPER_TOOLS_HEADING: 'Entwickler Tools' + DEBUGGING_HEADING: 'Debugging' + + RESTORE_LABEL: 'Wiederherstellen' + VIEW_LIVE_LABEL: 'Live ansehen' + NOT_YET_PUBLISHED_LABEL: 'Noch nicht veröffentlicht' + VIEW_DRAFT_LABEL: 'Entwurf ansehen' + DELETED_FROM_DRAFT_SITE_LABEL: 'Aus dem Entwurf gelöscht' + EDIT_IN_CMS_LABEL: 'Im CMS bearbeiten' + LOG_OUT_LABEL: 'Ausloggen' + LOG_IN_LABEL: 'Einloggen' + DEV_MOVE_ON_LABEL: 'Dev Modus aktiviert' + DEV_MODE_LABEL: 'Dev Modus' + FLUSH_CACHE_LABEL: 'Caches leeren' + BUILD_DATABASE_LABEL: 'Datenbank generieren' + DEV_MENU_LABEL: 'Dev Menü' + SHOW_TEMPLATE_LABEL: 'Template anzeigen' + SHOW_METRICS_LABEL: 'Metrics anzeigen' + DEBUG_PAGE_LABEL: 'Seite debuggen' + DEBUG_REQUEST_LABEL: 'Request debuggen' + DEBUG_FAILOVER_LABEL: 'Debug Failover' + SHOW_QUERIES_LABEL: 'Queries anzeigen' + PREVIEW_WRITE_LABEL: 'Queryvorschau' + + END_DEV_MODE_TITLE: 'Ausloggen um den Dev Modus zu beenden' + FLUSH_CACHE_TITLE: 'Templates + Manifest neu einlesen und Bilder für diese Seite generieren (Verhalten kann sich je nach Framework-Version unterscheiden)' + BUILD_DATABASE_TITLE: 'Datenbank generieren und die Caches leeren (Template-Caches vor SS-3.1.7 sind ausgeschlossen)' + SHOW_TEMPLATE_TITLE: 'Zeigt die kompilierte Version von allen benutzten Templates mit Zeilenangaben an. Gut geeignet, wenn Syntax-Fehler in einem Template vorhanden sind. Kann auf einer Live-Seite ohne isDev nicht benutzt werden' + EXEC_METRIC_TITLE: 'Zeigt die vergangene Zeit zum Ausführen und die Spitzenauslastung der Speichernutzung für diesen Request an' + DEBUG_PAGE_TITLE: 'Zeigt eine Sammlung an Debugging-informationen über die Director- / Controller-operationen' + DEBUG_REQUEST_TITLE: 'Listet alle Schritte des Requests vom ursprünglichen HTTPRequest bis hin zum Controller und dem Template-Rendering auf' + DEBUG_FAILOVER_TITLE: 'Zeigt die Failover Methoden von vererbten Klassen an' + SHOW_QUERIES_TITLE: 'Listet alle ausgeführten SQL queries auf' + PREVIEW_WRITE_TITLE: "Listet alle Insert / Update SQL Queries auf, führt sie aber nicht aus. Als Vorschau für Änderungen in der Datenbank nützlich" diff --git a/lang/en.yml b/lang/en.yml new file mode 100644 index 0000000..3ba914e --- /dev/null +++ b/lang/en.yml @@ -0,0 +1,40 @@ +en: + JonoM\BetterNavigator: + VIEWING_LIVE: 'Live' + VIEWING_DRAFT: 'Draft' + VIEWING_ARCHIVED: 'Archived' + + DEVELOPER_TOOLS_HEADING: 'Developer tools' + DEBUGGING_HEADING: 'Debugging' + + RESTORE_LABEL: 'Restore' + VIEW_LIVE_LABEL: 'View live' + NOT_YET_PUBLISHED_LABEL: 'Not yet published' + VIEW_DRAFT_LABEL: 'View draft' + DELETED_FROM_DRAFT_SITE_LABEL: 'Deleted from draft site' + EDIT_IN_CMS_LABEL: 'Edit in CMS' + LOG_OUT_LABEL: 'Log out' + LOG_IN_LABEL: 'Log in' + DEV_MOVE_ON_LABEL: 'Dev mode on' + DEV_MODE_LABEL: 'Dev mode' + FLUSH_CACHE_LABEL: 'Flush caches' + BUILD_DATABASE_LABEL: 'Build database' + DEV_MENU_LABEL: 'Dev menu' + SHOW_TEMPLATE_LABEL: 'Show template' + SHOW_METRICS_LABEL: 'Show metrics' + DEBUG_PAGE_LABEL: 'Debug page' + DEBUG_REQUEST_LABEL: 'Debug request' + DEBUG_FAILOVER_LABEL: 'Debug failover' + SHOW_QUERIES_LABEL: 'Show queries' + PREVIEW_WRITE_LABEL: 'Preview write' + + END_DEV_MODE_TITLE: 'Log out to end Dev Mode' + FLUSH_CACHE_TITLE: 'Flush templates and manifest, and regenerate images for this page (behaviour varies by Framework version)' + BUILD_DATABASE_TITLE: 'Build database and flush caches (excludes template caches pre SS-3.1.7)' + SHOW_TEMPLATE_TITLE: 'Show the compiled version of all the templates used, including line numbers. Good when you have a syntax error in a template. Cannot be used on a Live site without isDev' + EXEC_METRIC_TITLE: 'Display the execution time and peak memory usage for the request' + DEBUG_PAGE_TITLE: 'Show a collection of debugging information about the director / controller operation' + DEBUG_REQUEST_TITLE: 'Show all steps of the request from initial HTTPRequest to Controller to Template Rendering' + DEBUG_FAILOVER_TITLE: 'Shows failover methods from classes extended' + SHOW_QUERIES_TITLE: 'List all SQL queries executed' + PREVIEW_WRITE_TITLE: "List all insert / update SQL queries, and don't execute them. Useful for previewing writes to the database" diff --git a/src/Extension/BetterNavigatorExtension.php b/src/Extension/BetterNavigatorExtension.php index a1a6339..6e00958 100644 --- a/src/Extension/BetterNavigatorExtension.php +++ b/src/Extension/BetterNavigatorExtension.php @@ -84,6 +84,7 @@ class BetterNavigatorExtension extends DataExtension // Get SilverStripeNavigator links & stage info (CMS/Stage/Live/Archive) $nav = []; $viewing = ''; + $viewingTitle = ''; $navigator = SilverStripeNavigator::create($this->owner->dataRecord); $isDev = Director::isDev(); @@ -96,9 +97,18 @@ class BetterNavigatorExtension extends DataExtension 'Active' => $active ]; if ($active) { - if ($name == 'LiveLink') $viewing = 'Live'; - if ($name == 'StageLink') $viewing = 'Draft'; - if ($name == 'ArchiveLink') $viewing = 'Archived'; + if ($name == 'LiveLink') { + $viewing = 'Live'; + $viewingTitle = _t('JonoM\BetterNavigator.VIEWING_LIVE', 'Live'); + } + else if ($name == 'StageLink') { + $viewing = 'Draft'; + $viewingTitle = _t('JonoM\BetterNavigator.VIEWING_DRAFT', 'Draft'); + } + else if ($name == 'ArchiveLink') { + $viewing = 'Archived'; + $viewingTitle = _t('JonoM\BetterNavigator.VIEWING_ARCHIVED', 'Archived'); + } } } // Only show edit link if user has permission to edit this page @@ -121,6 +131,7 @@ class BetterNavigatorExtension extends DataExtension 'Member' => $member, 'Stage' => Versioned::get_stage(), 'Viewing' => $viewing, // What we're viewing doesn't necessarily align with the active Stage + 'ViewingTitle' => $viewingTitle, 'LoginLink' => Controller::join_links(Director::absoluteBaseURL(), Security::config()->login_url, $backURL), 'LogoutLink' => Controller::join_links(Director::absoluteBaseURL() . Security::config()->logout_url, $backURL), 'LogoutForm' => $logoutForm, diff --git a/templates/BetterNavigator/BetterNavigator.ss b/templates/BetterNavigator/BetterNavigator.ss index 24a7dfd..3398e6b 100644 --- a/templates/BetterNavigator/BetterNavigator.ss +++ b/templates/BetterNavigator/BetterNavigator.ss @@ -2,7 +2,7 @@
- $Viewing + $ViewingTitle
@@ -11,30 +11,30 @@ @@ -43,19 +43,33 @@ <% if $Mode=='dev' || $IsDeveloper %> -
Developer tools
+
<%t JonoM\BetterNavigator.DEVELOPER_TOOLS_HEADING 'Developer tools' %>
@@ -65,17 +79,52 @@ <% if $Mode=='dev' %> -
Debugging
+
<%t JonoM\BetterNavigator.DEBUGGING_HEADING 'Debugging' %>