diff --git a/cache/lastCache.txt b/cache/lastCache.txt index 5c17eb9..4e98754 100644 --- a/cache/lastCache.txt +++ b/cache/lastCache.txt @@ -1 +1 @@ -1577899842 \ No newline at end of file +1578580890 \ No newline at end of file diff --git a/settings/languages/en.yaml b/settings/languages/en.yaml new file mode 100644 index 0000000..b06f608 --- /dev/null +++ b/settings/languages/en.yaml @@ -0,0 +1,101 @@ +# English +ACCOUNT: Account +ACTIVE: Active +ACTUAL_PASSWORD: Actual Password +ADD_FILE: add file +ADD_FOLDER: add folder +ADD_FOLDER_TO_BASE_LEVEL: add folder to base level +ADD_ITEM: add item +ALL_USERS: All users +AUTHOR: Author +BACK_TO_STARTPAGE: back to startpage +BY: by +CODE: code +CONTENT: Content +COPYRIGHT: Copyright +CREATE_NEW_USER: Create New User +CREATE_USER: Create User +DEFINITION: definition +DELETE: delete +DELETE_PAGE: Delete page +DELETE_USER: Delete User +DISCARD_CHANGES: Discard Changes +DISCARD: Discard +DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Do you really want to delete the user +DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Do you really want to delete this page? +DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Do you want to discard your changes and set the content back to the live version? +DRAFT: Draft +EDIT: edit +EDIT_USER: Edit User +E_G_: e.g. +E_MAIL: E-Mail +FIRST_NAME: First Name +FORGOT_PASSWORD: Forgot password +HEADLINE: headline +HOMEPAGE: Homepage +HR: hr +IMAGE: image +LANGUAGE: Language +LAST_NAME: Last Name +LICENCE: Licence +LOGIN: Login +LOGOUT: Logout +MARKDOWN: markdown +MENU: Menu +META_TITLE: meta title +MISSING_REQUIREMENTS: Missing Requirements +NEW_PASSWORD: New Password +NO_DESCRIPTION: No description +NO_PREVIEW: No Preview +NO_SETTINGS: No Settings +NOT_EDITABLE: not editable +OLIST: olist +ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Only the following special characters are allowed: +PASSWORD: Password +PLEASE_CONFIRM: Please confirm +PLUGINS: Plugins +PLUGIN_STORE: Plugin Store +PUBLISH: Publish +QUOTE: quote +RAW_CONTENT_EDITOR: Raw Content Editor +RAW_MARKDOWN_EDITOR: Raw Markdown Editor +RAW_MODE: raw mode +RAW: raw +READONLY: Readonly +REMEMBER_TO_BOOKMARK_THIS_PAGE: Remember to bookmark this page +REQUIRED: Required +ROLE: Role +SAVE_ALL_SETTINGS: Save All Settings +SAVE: Save +SAVE_THEME: Save Theme +SETTINGS: Settings +SETUP: Setup +STANDARD_EDITOR_MODE: Standard Editor Mode +START: Start +SYSTEM: System +TABLE: table +THE_FORMAT_BUTTONS: The Format Buttons +THEMES: Themes +THEME_STORE: Theme Store +TITLE: Title +TOC: toc +ULIST: ulist +UNKNOWN: Unknown +UPDATE_USER: Update User +USE_2_TO_40_CHARACTERS: Use 2 to 40 characters. +USE_A_VALID_YEAR: Use a valid year +USERNAME: Username +USERS: Users +USER: User +VIDEO: video +VIEW_SITE: View Site +VISUAL_CONTENT_EDITOR: Visual Content Editor +VISUAL_EDITOR: Visual Editor +VISUAL_MARKDOWN_EDITOR: Visual Markdown Editor +VISUAL_MODE: visual mode +VISUAL: visual +WAIT: wait +WEBSITE_TITLE: Website Title +WEB: Web +WRITING: Writing +YEAR: Year \ No newline at end of file diff --git a/settings/languages/it.yaml b/settings/languages/it.yaml new file mode 100644 index 0000000..3d90b2c --- /dev/null +++ b/settings/languages/it.yaml @@ -0,0 +1,101 @@ +# Italiano +ACCOUNT: Utenza +ACTIVE: Attivo +ACTUAL_PASSWORD: Parola d'ordine corrente +ADD_FILE: aggiungi file +ADD_FOLDER: aggiungi cartella +ADD_FOLDER_TO_BASE_LEVEL: aggiungi cartella al livello base +ADD_ITEM: aggiungi articolo +ALL_USERS: Tutti gli utenti +AUTHOR: Autore +BACK_TO_STARTPAGE: torna alla pagina iniziale +BY: di +CODE: codice +CONTENT: Contenuto +COPYRIGHT: Diritti d'autore +CREATE_NEW_USER: Crea nuovo utente +CREATE_USER: Crea utente +DEFINITION: elenco di definizioni +DELETE: elimina +DELETE_PAGE: Elimina pagina +DELETE_USER: Elimina utente +DISCARD_CHANGES: Non salvare le modifiche +DISCARD: Scarta +DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Vuoi veramente eliminare l'utente +DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Vuoi veramente cancellare questa pagina? +DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Vuoi annullare le modifiche e ripristinare i contenuti alla versione precedente? +DRAFT: Bozza +EDIT: modifica +EDIT_USER: Modifica utente +E_G_: per es.: +E_MAIL: Posta elettronica +FIRST_NAME: Nome +FORGOT_PASSWORD: Parola d'ordine dimenticata +HEADLINE: titolo +HOMEPAGE: Homepage +HR: linea orizzontale +IMAGE: immagine +LANGUAGE: Lingua +LAST_NAME: Cognome +LICENCE: Licenza +LOGIN: Accesso +LOGOUT: Disconnessione +MARKDOWN: markdown +MENU: Menu +META_TITLE: meta titolo +MISSING_REQUIREMENTS: Requisiti mancanti +NEW_PASSWORD: Nuova parola d'ordine +NO_DESCRIPTION: Nessuna descrizione +NO_PREVIEW: Nessuna anteprima +NO_SETTINGS: Nessuna impostazione +NOT_EDITABLE: non modificabile +OLIST: elenchi ordinati +ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Sono ammessi solo i seguenti caratteri speciali: +PASSWORD: Parola d'ordine +PLEASE_CONFIRM: Per favore conferma +PLUGINS: Plugin +PLUGIN_STORE: Deposito plugin +PUBLISH: Pubblica +QUOTE: citazione +RAW_CONTENT_EDITOR: Editore contenuto grezzo +RAW: grezzo +RAW_MARKDOWN_EDITOR: Editore grezzo Markdown +RAW_MODE: modo grezzo +READONLY: Sola lettura +REMEMBER_TO_BOOKMARK_THIS_PAGE: Ricorda di aggiungere questa pagina ai segnalibri +REQUIRED: Richiesto +ROLE: Ruolo +SAVE_ALL_SETTINGS: Salva tutte le impostazioni +SAVE: Salva +SAVE_THEME: Salva tema +SETTINGS: Impostazioni +SETUP: Configurazione +STANDARD_EDITOR_MODE: Modalità editore standard +START: Comincia +SYSTEM: Sistema +TABLE: tabella +THE_FORMAT_BUTTONS: pulsanti di formattazione +THEMES: Temi +THEME_STORE: Deposito temi +TITLE: Titolo +TOC: sommario +ULIST: elenchi non ordinati +UNKNOWN: Ignoto +UPDATE_USER: Aggiorna utente +USE_2_TO_40_CHARACTERS: Usa da 2 a 40 caratteri. +USE_A_VALID_YEAR: Usa un anno valido +USERNAME: Nome utente +USERS: Utenti +USER: Utente +VIDEO: video +VIEW_SITE: Mostra sito +VISUAL_CONTENT_EDITOR: Editore contenuto visivo +VISUAL_EDITOR: Editore visivo +VISUAL_MARKDOWN_EDITOR: Editore visivo Markdown +VISUAL_MODE: modo visivo +VISUAL: visivo +WAIT: aspetta +WEBSITE_TITLE: Titolo del sito +WEB: Sito +WRITING: Scrittura +YEAR: Anno \ No newline at end of file diff --git a/system/Extensions/TwigLanguageExtension.php b/system/Extensions/TwigLanguageExtension.php new file mode 100644 index 0000000..4fc9fda --- /dev/null +++ b/system/Extensions/TwigLanguageExtension.php @@ -0,0 +1,53 @@ +labels = $labels; + } + + public function getFilters() + { + return [ + new \Twig_SimpleFilter('__', [$this,'translate'] ) + ]; + } + + public function getFunctions() + { + return [ + new \Twig_SimpleFunction('__', array($this, 'translate' )) + ]; + } + + public function translate( $label ) + { + // replaces spaces, dots and dash with underscores + $string = str_replace(" ", "_", $label); + $string = str_replace(".", "_", $string); + $string = str_replace("-", "_", $string); + + // transforms to uppercase + $string = strtoupper( $string ); + + //translates the string + $translated_label = $this->labels[$string]; + + // if the string is not present, set the original string + if( empty($translated_label) ){ + $translated_label = $label; + } + + // returns the string in the set language + return $translated_label; + + } + +} diff --git a/system/Settings.php b/system/Settings.php index 661dbac..e3c245c 100644 --- a/system/Settings.php +++ b/system/Settings.php @@ -16,6 +16,12 @@ class Settings $settings = array_merge($defaultSettings, $userSettings); } + // i18n + // load the strings of the set language + $language = $settings['language']; + $settings['labels'] = self::getLanguageLabels($language); + + # We know the used theme now so create the theme path $settings['themePath'] = $settings['rootPath'] . $settings['themeFolder'] . DIRECTORY_SEPARATOR . $settings['theme']; @@ -70,6 +76,23 @@ class Settings return $userSettings; } + + // i18n + public static function getLanguageLabels($language) + { + // if not present, set the English language + if( empty($language) ){ + $language = 'en'; + } + + // load the strings of the set language + $yaml = new Models\WriteYaml(); + $labels = $yaml->getYaml('settings/languages', $language.'.yaml'); + + return $labels; + } + + public static function getObjectSettings($objectType, $objectName) { $yaml = new Models\WriteYaml(); diff --git a/system/author/auth/login.twig b/system/author/auth/login.twig index 10e618b..476db36 100644 --- a/system/author/auth/login.twig +++ b/system/author/auth/login.twig @@ -6,21 +6,21 @@
Remember to bookmark this page
+{{ __('Remember to bookmark this page') }}
{{ theme.description }}