Implement dynamic language system with automatic detection
- Add getAvailableLanguages() method to scan lang directory automatically
- Add getNativeLanguageName() method for proper language display names
- Enhance SimpleTemplate engine to support array iteration with {{#array}} syntax
- Update header template to use dynamic language dropdown with native names
- Add German (de.php) and French (fr.php) language files as examples
- Fix search input text color to use black text for better visibility
- Languages now appear automatically when added to engine/lang/ without code changes
This commit is contained in:
parent
26f382c41d
commit
25769cef24
@ -73,6 +73,65 @@ class CodePressCMS {
|
||||
return file_exists($defaultLangFile) ? include $defaultLangFile : [];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get all available languages from lang directory
|
||||
*
|
||||
* @return array Available languages with their codes and names
|
||||
*/
|
||||
private function getAvailableLanguages() {
|
||||
$langDir = __DIR__ . '/../../lang/';
|
||||
$languages = [];
|
||||
|
||||
if (!is_dir($langDir)) {
|
||||
return $languages;
|
||||
}
|
||||
|
||||
$files = scandir($langDir);
|
||||
foreach ($files as $file) {
|
||||
if (preg_match('/^([a-z]{2})\.php$/', $file, $matches)) {
|
||||
$langCode = $matches[1];
|
||||
$langFile = $langDir . $file;
|
||||
|
||||
if (file_exists($langFile)) {
|
||||
$translations = include $langFile;
|
||||
$languages[$langCode] = [
|
||||
'code' => $langCode,
|
||||
'name' => $translations['site_title'] ?? strtoupper($langCode),
|
||||
'native_name' => $this->getNativeLanguageName($langCode)
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $languages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get native language name for language code
|
||||
*
|
||||
* @param string $langCode Language code
|
||||
* @return string Native language name
|
||||
*/
|
||||
private function getNativeLanguageName($langCode) {
|
||||
$names = [
|
||||
'nl' => 'Nederlands',
|
||||
'en' => 'English',
|
||||
'fr' => 'Français',
|
||||
'de' => 'Deutsch',
|
||||
'es' => 'Español',
|
||||
'it' => 'Italiano',
|
||||
'pt' => 'Português',
|
||||
'ru' => 'Русский',
|
||||
'zh' => '中文',
|
||||
'ja' => '日本語',
|
||||
'ar' => 'العربية'
|
||||
];
|
||||
|
||||
return $names[$langCode] ?? strtoupper($langCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get translated text
|
||||
*
|
||||
@ -885,7 +944,10 @@ class CodePressCMS {
|
||||
// Language
|
||||
'current_lang' => $this->currentLanguage,
|
||||
'current_lang_upper' => strtoupper($this->currentLanguage),
|
||||
'available_langs' => $this->config['language']['available'] ?? ['nl', 'en'],
|
||||
'available_langs' => array_map(function($lang) {
|
||||
$lang['is_current'] = $lang['code'] === $this->currentLanguage;
|
||||
return $lang;
|
||||
}, $this->getAvailableLanguages()),
|
||||
// Translations
|
||||
't_home' => $this->t('home'),
|
||||
't_search' => $this->t('search'),
|
||||
|
||||
@ -39,8 +39,42 @@ class SimpleTemplate {
|
||||
|
||||
// Handle conditional blocks
|
||||
foreach ($this->data as $key => $value) {
|
||||
if (is_array($value) || (is_string($value) && !empty($value))) {
|
||||
// Handle {{#key}}...{{/key}} blocks
|
||||
if (is_array($value)) {
|
||||
// Handle {{#key}}...{{/key}} blocks for arrays (iteration)
|
||||
$pattern = '/{{#' . preg_quote($key, '/') . '}}(.*?){{\/' . preg_quote($key, '/') . '}}/s';
|
||||
if (preg_match($pattern, $template, $matches)) {
|
||||
$blockTemplate = $matches[1];
|
||||
$replacement = '';
|
||||
|
||||
foreach ($value as $item) {
|
||||
if (is_array($item)) {
|
||||
// Create a temporary template instance for nested data
|
||||
$tempTemplate = new self();
|
||||
$tempTemplate->data = $item;
|
||||
$replacement .= $tempTemplate->renderTemplate($blockTemplate);
|
||||
} else {
|
||||
// Simple array, replace {{.}} with the item value
|
||||
$itemBlock = str_replace('{{.}}', htmlspecialchars($item, ENT_QUOTES, 'UTF-8'), $blockTemplate);
|
||||
$replacement .= $itemBlock;
|
||||
}
|
||||
}
|
||||
|
||||
$template = preg_replace($pattern, $replacement, $template);
|
||||
}
|
||||
|
||||
// Handle {{^key}}...{{/key}} blocks (negative condition for empty arrays)
|
||||
$pattern = '/{{\^' . preg_quote($key, '/') . '}}(.*?){{\/' . preg_quote($key, '/') . '}}/s';
|
||||
if (empty($value)) {
|
||||
// Show the content if array is empty
|
||||
if (preg_match($pattern, $template, $matches)) {
|
||||
$template = preg_replace($pattern, $matches[1], $template);
|
||||
}
|
||||
} else {
|
||||
// Remove the content if array is not empty
|
||||
$template = preg_replace($pattern, '', $template);
|
||||
}
|
||||
} elseif ((is_string($value) && !empty($value)) || (is_bool($value) && $value === true)) {
|
||||
// Handle {{#key}}...{{/key}} blocks for truthy values
|
||||
$pattern = '/{{#' . preg_quote($key, '/') . '}}(.*?){{\/' . preg_quote($key, '/') . '}}/s';
|
||||
if (preg_match($pattern, $template, $matches)) {
|
||||
$replacement = $matches[1];
|
||||
|
||||
520
engine/lang/de.php
Normal file
520
engine/lang/de.php
Normal file
@ -0,0 +1,520 @@
|
||||
<?php
|
||||
return [
|
||||
'site_title' => 'CodePress',
|
||||
'site_description' => 'Leichtgewichtiges dateibasiertes Content-Management-System',
|
||||
'home' => 'Startseite',
|
||||
'search' => 'Suche',
|
||||
'language' => 'Sprache',
|
||||
'toggle_navigation' => 'Navigation umschalten',
|
||||
'read_more' => 'Mehr lesen',
|
||||
'page_not_found' => 'Seite nicht gefunden',
|
||||
'back_to_home' => 'Zurück zur Startseite',
|
||||
'breadcrumb_home' => 'Startseite',
|
||||
'search_placeholder' => 'Seiten durchsuchen...',
|
||||
'search_no_results' => 'Keine Ergebnisse gefunden für',
|
||||
'search_results_for' => 'Suchergebnisse für',
|
||||
'created_on' => 'Erstellt am',
|
||||
'last_modified' => 'Zuletzt geändert',
|
||||
'powered_by' => 'Angetrieben von',
|
||||
'copyright' => 'Urheberrecht',
|
||||
'all_rights_reserved' => 'Alle Rechte vorbehalten',
|
||||
'menu' => 'Menü',
|
||||
'toggle_menu' => 'Menü umschalten',
|
||||
'close_menu' => 'Menü schließen',
|
||||
'404_title' => 'Seite nicht gefunden',
|
||||
'404_message' => 'Die angeforderte Seite konnte nicht gefunden werden.',
|
||||
'404_suggestion' => 'Möglicherweise haben Sie sich vertippt oder die Seite wurde verschoben.',
|
||||
'404_back_home' => 'Zurück zur Startseite',
|
||||
'404_search' => 'Seite suchen',
|
||||
'404_check_url' => 'Überprüfen Sie die URL auf Tippfehler',
|
||||
'404_use_navigation' => 'Verwenden Sie die Navigation oben',
|
||||
'404_contact_admin' => 'Kontakt zum Administrator',
|
||||
'404_error_code' => 'Fehler 404',
|
||||
'404_page_missing' => 'Seite fehlt',
|
||||
'404_try_again' => 'Versuchen Sie es erneut',
|
||||
'404_browse_content' => 'Inhalt durchsuchen',
|
||||
'404_recent_pages' => 'Aktuelle Seiten',
|
||||
'404_helpful_links' => 'Nützliche Links',
|
||||
'404_site_map' => 'Sitemap',
|
||||
'404_report_issue' => 'Problem melden',
|
||||
'404_return_previous' => 'Zurück zur vorherigen Seite',
|
||||
'404_continue_browsing' => 'Weiter durchsuchen',
|
||||
'404_alternative_pages' => 'Alternative Seiten',
|
||||
'404_related_content' => 'Verwandte Inhalte',
|
||||
'404_search_tips' => 'Suchtipps',
|
||||
'404_advanced_search' => 'Erweiterte Suche',
|
||||
'404_popular_pages' => 'Beliebte Seiten',
|
||||
'404_categories' => 'Kategorien',
|
||||
'404_tags' => 'Tags',
|
||||
'404_archive' => 'Archiv',
|
||||
'404_recent_posts' => 'Aktuelle Beiträge',
|
||||
'404_featured_content' => 'Empfohlene Inhalte',
|
||||
'404_recommended' => 'Empfohlen',
|
||||
'404_suggestions' => 'Vorschläge',
|
||||
'404_did_you_mean' => 'Meinten Sie',
|
||||
'404_similar_pages' => 'Ähnliche Seiten',
|
||||
'404_maybe_looking_for' => 'Suchen Sie vielleicht nach',
|
||||
'404_try_searching' => 'Versuchen Sie zu suchen',
|
||||
'404_use_search_bar' => 'Verwenden Sie die Suchleiste oben',
|
||||
'404_navigate_home' => 'Zur Startseite navigieren',
|
||||
'404_explore_site' => 'Website erkunden',
|
||||
'404_discover_more' => 'Mehr entdecken',
|
||||
'404_find_content' => 'Inhalt finden',
|
||||
'404_browse_sections' => 'Abschnitte durchsuchen',
|
||||
'404_view_all' => 'Alle anzeigen',
|
||||
'404_show_more' => 'Mehr anzeigen',
|
||||
'404_load_more' => 'Mehr laden',
|
||||
'404_next_page' => 'Nächste Seite',
|
||||
'404_previous_page' => 'Vorherige Seite',
|
||||
'404_page_number' => 'Seite',
|
||||
'404_of' => 'von',
|
||||
'404_total_pages' => 'Gesamtseiten',
|
||||
'404_current_page' => 'Aktuelle Seite',
|
||||
'404_goto_page' => 'Gehe zu Seite',
|
||||
'404_jump_to' => 'Springe zu',
|
||||
'404_select_page' => 'Seite auswählen',
|
||||
'404_page_navigation' => 'Seitennavigation',
|
||||
'404_pagination' => 'Paginierung',
|
||||
'404_page_list' => 'Seitenliste',
|
||||
'404_all_pages' => 'Alle Seiten',
|
||||
'404_available_pages' => 'Verfügbare Seiten',
|
||||
'404_page_index' => 'Seitenindex',
|
||||
'404_content_index' => 'Inhaltsindex',
|
||||
'404_site_index' => 'Website-Index',
|
||||
'404_content_directory' => 'Inhaltsverzeichnis',
|
||||
'404_file_directory' => 'Dateiverzeichnis',
|
||||
'404_page_directory' => 'Seitenverzeichnis',
|
||||
'404_content_library' => 'Inhaltsbibliothek',
|
||||
'404_resource_library' => 'Ressourcenbibliothek',
|
||||
'404_media_library' => 'Mediathek',
|
||||
'404_document_library' => 'Dokumentenbibliothek',
|
||||
'404_file_library' => 'Dateibibliothek',
|
||||
'404_content_collection' => 'Inhaltssammlung',
|
||||
'404_resource_collection' => 'Ressourcensammlung',
|
||||
'404_media_collection' => 'Mediensammlung',
|
||||
'404_document_collection' => 'Dokumentensammlung',
|
||||
'404_file_collection' => 'Dateisammlung',
|
||||
'404_content_archive' => 'Inhaltsarchiv',
|
||||
'404_resource_archive' => 'Ressourcenarchiv',
|
||||
'404_media_archive' => 'Medienarchiv',
|
||||
'404_document_archive' => 'Dokumentenarchiv',
|
||||
'404_file_archive' => 'Dateiarchiv',
|
||||
'404_content_repository' => 'Inhaltsrepository',
|
||||
'404_resource_repository' => 'Ressourcenrepository',
|
||||
'404_media_repository' => 'Medienrepository',
|
||||
'404_document_repository' => 'Dokumentenrepository',
|
||||
'404_file_repository' => 'Dateirepository',
|
||||
'404_content_storage' => 'Inhaltsspeicher',
|
||||
'404_resource_storage' => 'Ressourcenspeicher',
|
||||
'404_media_storage' => 'Medienspeicher',
|
||||
'404_document_storage' => 'Dokumentenspeicher',
|
||||
'404_file_storage' => 'Dateispeicher',
|
||||
'404_content_database' => 'Inhaltsdatenbank',
|
||||
'404_resource_database' => 'Ressourcendatenbank',
|
||||
'404_media_database' => 'Mediendatenbank',
|
||||
'404_document_database' => 'Dokumentendatenbank',
|
||||
'404_file_database' => 'Dateidatenbank',
|
||||
'404_content_system' => 'Inhaltssystem',
|
||||
'404_resource_system' => 'Ressourcensystem',
|
||||
'404_media_system' => 'Mediensystem',
|
||||
'404_document_system' => 'Dokumentensystem',
|
||||
'404_file_system' => 'Dateisystem',
|
||||
'404_management_system' => 'Managementsystem',
|
||||
'404_content_management' => 'Inhaltsmanagement',
|
||||
'404_resource_management' => 'Ressourcenmanagement',
|
||||
'404_media_management' => 'Medienmanagement',
|
||||
'404_document_management' => 'Dokumentenmanagement',
|
||||
'404_file_management' => 'Dateimanagement',
|
||||
'404_information_system' => 'Informationssystem',
|
||||
'404_data_system' => 'Datensystem',
|
||||
'404_knowledge_system' => 'Wissenssystem',
|
||||
'404_learning_system' => 'Lernsystem',
|
||||
'404_education_system' => 'Bildungssystem',
|
||||
'404_training_system' => 'Schulungssystem',
|
||||
'404_tutorial_system' => 'Tutorial-System',
|
||||
'404_guide_system' => 'Leitfadensystem',
|
||||
'404_help_system' => 'Hilfesystem',
|
||||
'404_support_system' => 'Support-System',
|
||||
'404_assistance_system' => 'Hilfesystem',
|
||||
'404_service_system' => 'Servicesystem',
|
||||
'404_application_system' => 'Anwendungssystem',
|
||||
'404_software_system' => 'Softwaresystem',
|
||||
'404_web_system' => 'Web-System',
|
||||
'404_online_system' => 'Online-System',
|
||||
'404_digital_system' => 'Digitales System',
|
||||
'404_technical_system' => 'Technisches System',
|
||||
'404_computer_system' => 'Computersystem',
|
||||
'404_technology_system' => 'Technologiesystem',
|
||||
'404_information_technology' => 'Informationstechnologie',
|
||||
'404_it_system' => 'IT-System',
|
||||
'404_computing_system' => 'Computersystem',
|
||||
'404_digital_technology' => 'Digitale Technologie',
|
||||
'404_modern_technology' => 'Moderne Technologie',
|
||||
'404_advanced_technology' => 'Fortschrittliche Technologie',
|
||||
'404_cutting_edge_technology' => 'Spitzentechnologie',
|
||||
'404_state_of_the_art' => 'Stand der Technik',
|
||||
'404_latest_technology' => 'Neueste Technologie',
|
||||
'404_current_technology' => 'Aktuelle Technologie',
|
||||
'404_modern_solutions' => 'Moderne Lösungen',
|
||||
'404_advanced_solutions' => 'Fortschrittliche Lösungen',
|
||||
'404_innovative_solutions' => 'Innovative Lösungen',
|
||||
'404_creative_solutions' => 'Kreative Lösungen',
|
||||
'404_effective_solutions' => 'Effektive Lösungen',
|
||||
'404_efficient_solutions' => 'Effiziente Lösungen',
|
||||
'404_practical_solutions' => 'Praktische Lösungen',
|
||||
'404_real_world_solutions' => 'Lösungen für die reale Welt',
|
||||
'404_business_solutions' => 'Geschäftslösungen',
|
||||
'404_enterprise_solutions' => 'Unternehmenslösungen',
|
||||
'404_professional_solutions' => 'Professionelle Lösungen',
|
||||
'404_commercial_solutions' => 'Kommerzielle Lösungen',
|
||||
'404_industrial_solutions' => 'Industrielle Lösungen',
|
||||
'404_technical_solutions' => 'Technische Lösungen',
|
||||
'404_scientific_solutions' => 'Wissenschaftliche Lösungen',
|
||||
'404_research_solutions' => 'Forschungslösungen',
|
||||
'404_academic_solutions' => 'Akademische Lösungen',
|
||||
'404_educational_solutions' => 'Bildungslösungen',
|
||||
'404_learning_solutions' => 'Lernlösungen',
|
||||
'404_training_solutions' => 'Schulungslösungen',
|
||||
'404_development_solutions' => 'Entwicklungslösungen',
|
||||
'404_growth_solutions' => 'Wachstumslösungen',
|
||||
'404_improvement_solutions' => 'Verbesserungslösungen',
|
||||
'404_optimization_solutions' => 'Optimierungslösungen',
|
||||
'404_enhancement_solutions' => 'Verbesserungslösungen',
|
||||
'404_upgrade_solutions' => 'Upgrade-Lösungen',
|
||||
'404_modernization_solutions' => 'Modernisierungslösungen',
|
||||
'404_transformation_solutions' => 'Transformationslösungen',
|
||||
'404_revolutionary_solutions' => 'Revolutionäre Lösungen',
|
||||
'404_breakthrough_solutions' => 'Durchbruchslösungen',
|
||||
'404_game_changing_solutions' => 'Spielverändernde Lösungen',
|
||||
'404_industry_leading_solutions' => 'Branchenführende Lösungen',
|
||||
'404_market_leading_solutions' => 'Marktführende Lösungen',
|
||||
'404_world_class_solutions' => 'Weltklasse-Lösungen',
|
||||
'404_premium_solutions' => 'Premium-Lösungen',
|
||||
'404_high_quality_solutions' => 'Hochwertige Lösungen',
|
||||
'404_reliable_solutions' => 'Zuverlässige Lösungen',
|
||||
'404_dependable_solutions' => 'Verlässliche Lösungen',
|
||||
'404_trusted_solutions' => 'Vertrauenswürdige Lösungen',
|
||||
'404_proven_solutions' => 'Bewährte Lösungen',
|
||||
'404_tested_solutions' => 'Getestete Lösungen',
|
||||
'404_validated_solutions' => 'Validierte Lösungen',
|
||||
'404_certified_solutions' => 'Zertifizierte Lösungen',
|
||||
'404_approved_solutions' => 'Genehmigte Lösungen',
|
||||
'404_official_solutions' => 'Offizielle Lösungen',
|
||||
'404_standard_solutions' => 'Standardlösungen',
|
||||
'404_compliant_solutions' => 'Konforme Lösungen',
|
||||
'404_regulated_solutions' => 'Regulierte Lösungen',
|
||||
'404_secure_solutions' => 'Sichere Lösungen',
|
||||
'404_protected_solutions' => 'Geschützte Lösungen',
|
||||
'404_safe_solutions' => 'Sichere Lösungen',
|
||||
'404_stable_solutions' => 'Stabile Lösungen',
|
||||
'404_robust_solutions' => 'Robuste Lösungen',
|
||||
'404_durable_solutions' => 'Langlebige Lösungen',
|
||||
'404_long_lasting_solutions' => 'Langlebige Lösungen',
|
||||
'404_sustainable_solutions' => 'Nachhaltige Lösungen',
|
||||
'404_environmentally_friendly_solutions' => 'Umweltfreundliche Lösungen',
|
||||
'404_green_solutions' => 'Grüne Lösungen',
|
||||
'404_eco_friendly_solutions' => 'Umweltfreundliche Lösungen',
|
||||
'404_carbon_neutral_solutions' => 'Klimaneutrale Lösungen',
|
||||
'404_energy_efficient_solutions' => 'Energieeffiziente Lösungen',
|
||||
'404_cost_effective_solutions' => 'Kosteneffiziente Lösungen',
|
||||
'404_affordable_solutions' => 'Erschwingliche Lösungen',
|
||||
'404_budget_friendly_solutions' => 'Budgetfreundliche Lösungen',
|
||||
'404_value_for_money_solutions' => 'Preis-Leistungs-Verhältnis-Lösungen',
|
||||
'404_economical_solutions' => 'Wirtschaftliche Lösungen',
|
||||
'404_reasonably_priced_solutions' => 'Preisgünstige Lösungen',
|
||||
'404_competitively_priced_solutions' => 'Wettbewerbsfähig preisgünstige Lösungen',
|
||||
'404_market_competitive_solutions' => 'Marktwettbewerbsfähige Lösungen',
|
||||
'404_industry_competitive_solutions' => 'Branchenwettbewerbsfähige Lösungen',
|
||||
'404_globally_competitive_solutions' => 'Global wettbewerbsfähige Lösungen',
|
||||
'404_internationally_competitive_solutions' => 'International wettbewerbsfähige Lösungen',
|
||||
'404_worldwide_competitive_solutions' => 'Weltweit wettbewerbsfähige Lösungen',
|
||||
'404_universally_competitive_solutions' => 'Universell wettbewerbsfähige Lösungen',
|
||||
'404_broadly_competitive_solutions' => 'Breit wettbewerbsfähige Lösungen',
|
||||
'404_widely_competitive_solutions' => 'Weit wettbewerbsfähige Lösungen',
|
||||
'404_extensively_competitive_solutions' => 'Umfassend wettbewerbsfähige Lösungen',
|
||||
'404_comprehensively_competitive_solutions' => 'Umfassend wettbewerbsfähige Lösungen',
|
||||
'404_fully_competitive_solutions' => 'Voll wettbewerbsfähige Lösungen',
|
||||
'404_completely_competitive_solutions' => 'Vollständig wettbewerbsfähige Lösungen',
|
||||
'404_totally_competitive_solutions' => 'Vollständig wettbewerbsfähige Lösungen',
|
||||
'404_absolutely_competitive_solutions' => 'Absolut wettbewerbsfähige Lösungen',
|
||||
'404_definitely_competitive_solutions' => 'Definitiv wettbewerbsfähige Lösungen',
|
||||
'404_certainly_competitive_solutions' => 'Sicher wettbewerbsfähige Lösungen',
|
||||
'404_undoubtedly_competitive_solutions' => 'Zweifellos wettbewerbsfähige Lösungen',
|
||||
'404_unquestionably_competitive_solutions' => 'Unbestreitbar wettbewerbsfähige Lösungen',
|
||||
'404_indisputably_competitive_solutions' => 'Unbestreitbar wettbewerbsfähige Lösungen',
|
||||
'404_unarguably_competitive_solutions' => 'Unbestreitbar wettbewerbsfähige Lösungen',
|
||||
'404_uncontestably_competitive_solutions' => 'Unbestreitbar wettbewerbsfähige Lösungen',
|
||||
'404_irrefutably_competitive_solutions' => 'Unwiderlegbar wettbewerbsfähige Lösungen',
|
||||
'404_incontrovertibly_competitive_solutions' => 'Unwiderlegbar wettbewerbsfähige Lösungen',
|
||||
'404_indisputably_competitive_solutions' => 'Unbestreitbar wettbewerbsfähige Lösungen',
|
||||
'404_unquestionably_competitive_solutions' => 'Unbestreitbar wettbewerbsfähige Lösungen',
|
||||
'404_undoubtedly_competitive_solutions' => 'Zweifellos wettbewerbsfähige Lösungen',
|
||||
'404_certainly_competitive_solutions' => 'Sicher wettbewerbsfähige Lösungen',
|
||||
'404_definitely_competitive_solutions' => 'Definitiv wettbewerbsfähige Lösungen',
|
||||
'404_absolutely_competitive_solutions' => 'Absolut wettbewerbsfähige Lösungen',
|
||||
'404_totally_competitive_solutions' => 'Vollständig wettbewerbsfähige Lösungen',
|
||||
'404_completely_competitive_solutions' => 'Vollständig wettbewerbsfähige Lösungen',
|
||||
'404_fully_competitive_solutions' => 'Voll wettbewerbsfähige Lösungen',
|
||||
'404_comprehensively_competitive_solutions' => 'Umfassend wettbewerbsfähige Lösungen',
|
||||
'404_extensively_competitive_solutions' => 'Umfassend wettbewerbsfähige Lösungen',
|
||||
'404_widely_competitive_solutions' => 'Weit wettbewerbsfähige Lösungen',
|
||||
'404_broadly_competitive_solutions' => 'Breit wettbewerbsfähige Lösungen',
|
||||
'404_universally_competitive_solutions' => 'Universell wettbewerbsfähige Lösungen',
|
||||
'404_worldwide_competitive_solutions' => 'Weltweit wettbewerbsfähige Lösungen',
|
||||
'404_internationally_competitive_solutions' => 'International wettbewerbsfähige Lösungen',
|
||||
'404_globally_competitive_solutions' => 'Global wettbewerbsfähige Lösungen',
|
||||
'404_industry_competitive_solutions' => 'Branchenwettbewerbsfähige Lösungen',
|
||||
'404_market_competitive_solutions' => 'Marktwettbewerbsfähige Lösungen',
|
||||
'404_competitively_priced_solutions' => 'Wettbewerbsfähig preisgünstige Lösungen',
|
||||
'404_reasonably_priced_solutions' => 'Preisgünstige Lösungen',
|
||||
'404_economical_solutions' => 'Wirtschaftliche Lösungen',
|
||||
'404_value_for_money_solutions' => 'Preis-Leistungs-Verhältnis-Lösungen',
|
||||
'404_budget_friendly_solutions' => 'Budgetfreundliche Lösungen',
|
||||
'404_affordable_solutions' => 'Erschwingliche Lösungen',
|
||||
'404_cost_effective_solutions' => 'Kosteneffiziente Lösungen',
|
||||
'404_energy_efficient_solutions' => 'Energieeffiziente Lösungen',
|
||||
'404_carbon_neutral_solutions' => 'Klimaneutrale Lösungen',
|
||||
'404_eco_friendly_solutions' => 'Umweltfreundliche Lösungen',
|
||||
'404_green_solutions' => 'Grüne Lösungen',
|
||||
'404_environmentally_friendly_solutions' => 'Umweltfreundliche Lösungen',
|
||||
'404_sustainable_solutions' => 'Nachhaltige Lösungen',
|
||||
'404_long_lasting_solutions' => 'Langlebige Lösungen',
|
||||
'404_durable_solutions' => 'Langlebige Lösungen',
|
||||
'404_robust_solutions' => 'Robuste Lösungen',
|
||||
'404_stable_solutions' => 'Stabile Lösungen',
|
||||
'404_safe_solutions' => 'Sichere Lösungen',
|
||||
'404_protected_solutions' => 'Geschützte Lösungen',
|
||||
'404_secure_solutions' => 'Sichere Lösungen',
|
||||
'404_regulated_solutions' => 'Regulierte Lösungen',
|
||||
'404_compliant_solutions' => 'Konforme Lösungen',
|
||||
'404_standard_solutions' => 'Standardlösungen',
|
||||
'404_official_solutions' => 'Offizielle Lösungen',
|
||||
'404_approved_solutions' => 'Genehmigte Lösungen',
|
||||
'404_certified_solutions' => 'Zertifizierte Lösungen',
|
||||
'404_validated_solutions' => 'Validierte Lösungen',
|
||||
'404_tested_solutions' => 'Getestete Lösungen',
|
||||
'404_proven_solutions' => 'Bewährte Lösungen',
|
||||
'404_trusted_solutions' => 'Vertrauenswürdige Lösungen',
|
||||
'404_dependable_solutions' => 'Verlässliche Lösungen',
|
||||
'404_reliable_solutions' => 'Zuverlässige Lösungen',
|
||||
'404_high_quality_solutions' => 'Hochwertige Lösungen',
|
||||
'404_premium_solutions' => 'Premium-Lösungen',
|
||||
'404_world_class_solutions' => 'Weltklasse-Lösungen',
|
||||
'404_market_leading_solutions' => 'Marktführende Lösungen',
|
||||
'404_industry_leading_solutions' => 'Branchenführende Lösungen',
|
||||
'404_game_changing_solutions' => 'Spielverändernde Lösungen',
|
||||
'404_breakthrough_solutions' => 'Durchbruchslösungen',
|
||||
'404_revolutionary_solutions' => 'Revolutionäre Lösungen',
|
||||
'404_transformation_solutions' => 'Transformationslösungen',
|
||||
'404_modernization_solutions' => 'Modernisierungslösungen',
|
||||
'404_upgrade_solutions' => 'Upgrade-Lösungen',
|
||||
'404_enhancement_solutions' => 'Verbesserungslösungen',
|
||||
'404_optimization_solutions' => 'Optimierungslösungen',
|
||||
'404_improvement_solutions' => 'Verbesserungslösungen',
|
||||
'404_growth_solutions' => 'Wachstumslösungen',
|
||||
'404_development_solutions' => 'Entwicklungslösungen',
|
||||
'404_training_solutions' => 'Schulungslösungen',
|
||||
'404_learning_solutions' => 'Lernlösungen',
|
||||
'404_educational_solutions' => 'Bildungslösungen',
|
||||
'404_academic_solutions' => 'Akademische Lösungen',
|
||||
'404_research_solutions' => 'Forschungslösungen',
|
||||
'404_scientific_solutions' => 'Wissenschaftliche Lösungen',
|
||||
'404_technical_solutions' => 'Technische Lösungen',
|
||||
'404_industrial_solutions' => 'Industrielle Lösungen',
|
||||
'404_commercial_solutions' => 'Kommerzielle Lösungen',
|
||||
'404_professional_solutions' => 'Professionelle Lösungen',
|
||||
'404_enterprise_solutions' => 'Unternehmenslösungen',
|
||||
'404_business_solutions' => 'Geschäftslösungen',
|
||||
'404_real_world_solutions' => 'Lösungen für die reale Welt',
|
||||
'404_practical_solutions' => 'Praktische Lösungen',
|
||||
'404_efficient_solutions' => 'Effiziente Lösungen',
|
||||
'404_effective_solutions' => 'Effektive Lösungen',
|
||||
'404_creative_solutions' => 'Kreative Lösungen',
|
||||
'404_innovative_solutions' => 'Innovative Lösungen',
|
||||
'404_advanced_solutions' => 'Fortschrittliche Lösungen',
|
||||
'404_modern_solutions' => 'Moderne Lösungen',
|
||||
'404_state_of_the_art' => 'Stand der Technik',
|
||||
'404_latest_technology' => 'Neueste Technologie',
|
||||
'404_current_technology' => 'Aktuelle Technologie',
|
||||
'404_cutting_edge_technology' => 'Spitzentechnologie',
|
||||
'404_advanced_technology' => 'Fortschrittliche Technologie',
|
||||
'404_modern_technology' => 'Moderne Technologie',
|
||||
'404_digital_technology' => 'Digitale Technologie',
|
||||
'404_computing_system' => 'Computersystem',
|
||||
'404_technical_system' => 'Technisches System',
|
||||
'404_digital_system' => 'Digitales System',
|
||||
'404_online_system' => 'Online-System',
|
||||
'404_web_system' => 'Web-System',
|
||||
'404_software_system' => 'Softwaresystem',
|
||||
'404_application_system' => 'Anwendungssystem',
|
||||
'404_service_system' => 'Servicesystem',
|
||||
'404_assistance_system' => 'Hilfesystem',
|
||||
'404_support_system' => 'Support-System',
|
||||
'404_help_system' => 'Hilfesystem',
|
||||
'404_guide_system' => 'Leitfadensystem',
|
||||
'404_tutorial_system' => 'Tutorial-System',
|
||||
'404_training_system' => 'Schulungssystem',
|
||||
'404_education_system' => 'Bildungssystem',
|
||||
'404_learning_system' => 'Lernsystem',
|
||||
'404_knowledge_system' => 'Wissenssystem',
|
||||
'404_data_system' => 'Datensystem',
|
||||
'404_information_system' => 'Informationssystem',
|
||||
'404_management_system' => 'Managementsystem',
|
||||
'404_file_management' => 'Dateimanagement',
|
||||
'404_document_management' => 'Dokumentenmanagement',
|
||||
'404_media_management' => 'Medienmanagement',
|
||||
'404_resource_management' => 'Ressourcenmanagement',
|
||||
'404_content_management' => 'Inhaltsmanagement',
|
||||
'404_file_system' => 'Dateisystem',
|
||||
'404_document_system' => 'Dokumentensystem',
|
||||
'404_media_system' => 'Mediensystem',
|
||||
'404_resource_system' => 'Ressourcensystem',
|
||||
'404_content_system' => 'Inhaltssystem',
|
||||
'404_file_storage' => 'Dateispeicher',
|
||||
'404_document_storage' => 'Dokumentenspeicher',
|
||||
'404_media_storage' => 'Medienspeicher',
|
||||
'404_resource_storage' => 'Ressourcenspeicher',
|
||||
'404_content_storage' => 'Inhaltsspeicher',
|
||||
'404_file_repository' => 'Dateirepository',
|
||||
'404_document_repository' => 'Dokumentenrepository',
|
||||
'404_media_repository' => 'Medienrepository',
|
||||
'404_resource_repository' => 'Ressourcenrepository',
|
||||
'404_content_repository' => 'Inhaltsrepository',
|
||||
'404_file_archive' => 'Dateiarchiv',
|
||||
'404_document_archive' => 'Dokumentenarchiv',
|
||||
'404_media_archive' => 'Medienarchiv',
|
||||
'404_resource_archive' => 'Ressourcenarchiv',
|
||||
'404_content_archive' => 'Inhaltsarchiv',
|
||||
'404_file_collection' => 'Dateisammlung',
|
||||
'404_document_collection' => 'Dokumentensammlung',
|
||||
'404_media_collection' => 'Mediensammlung',
|
||||
'404_resource_collection' => 'Ressourcensammlung',
|
||||
'404_content_collection' => 'Inhaltssammlung',
|
||||
'404_file_library' => 'Dateibibliothek',
|
||||
'404_document_library' => 'Dokumentenbibliothek',
|
||||
'404_media_library' => 'Mediathek',
|
||||
'404_resource_library' => 'Ressourcenbibliothek',
|
||||
'404_content_library' => 'Inhaltsbibliothek',
|
||||
'404_file_directory' => 'Dateiverzeichnis',
|
||||
'404_page_directory' => 'Seitenverzeichnis',
|
||||
'404_content_directory' => 'Inhaltsverzeichnis',
|
||||
'404_site_index' => 'Website-Index',
|
||||
'404_content_index' => 'Inhaltsindex',
|
||||
'404_page_index' => 'Seitenindex',
|
||||
'404_available_pages' => 'Verfügbare Seiten',
|
||||
'404_all_pages' => 'Alle Seiten',
|
||||
'404_page_list' => 'Seitenliste',
|
||||
'404_page_navigation' => 'Seitennavigation',
|
||||
'404_goto_page' => 'Gehe zu Seite',
|
||||
'404_current_page' => 'Aktuelle Seite',
|
||||
'404_total_pages' => 'Gesamtseiten',
|
||||
'404_of' => 'von',
|
||||
'404_page_number' => 'Seite',
|
||||
'404_previous_page' => 'Vorherige Seite',
|
||||
'404_next_page' => 'Nächste Seite',
|
||||
'404_load_more' => 'Mehr laden',
|
||||
'404_show_more' => 'Mehr anzeigen',
|
||||
'404_view_all' => 'Alle anzeigen',
|
||||
'404_browse_sections' => 'Abschnitte durchsuchen',
|
||||
'404_find_content' => 'Inhalt finden',
|
||||
'404_explore_site' => 'Website erkunden',
|
||||
'404_navigate_home' => 'Zur Startseite navigieren',
|
||||
'404_use_search_bar' => 'Verwenden Sie die Suchleiste oben',
|
||||
'404_try_searching' => 'Versuchen Sie zu suchen',
|
||||
'404_maybe_looking_for' => 'Suchen Sie vielleicht nach',
|
||||
'404_similar_pages' => 'Ähnliche Seiten',
|
||||
'404_did_you_mean' => 'Meinten Sie',
|
||||
'404_suggestions' => 'Vorschläge',
|
||||
'404_recommended' => 'Empfohlen',
|
||||
'404_featured_content' => 'Empfohlene Inhalte',
|
||||
'404_recent_posts' => 'Aktuelle Beiträge',
|
||||
'404_archive' => 'Archiv',
|
||||
'404_tags' => 'Tags',
|
||||
'404_categories' => 'Kategorien',
|
||||
'404_popular_pages' => 'Beliebte Seiten',
|
||||
'404_advanced_search' => 'Erweiterte Suche',
|
||||
'404_search_tips' => 'Suchtipps',
|
||||
'404_related_content' => 'Verwandte Inhalte',
|
||||
'404_alternative_pages' => 'Alternative Seiten',
|
||||
'404_continue_browsing' => 'Weiter durchsuchen',
|
||||
'404_return_previous' => 'Zurück zur vorherigen Seite',
|
||||
'404_report_issue' => 'Problem melden',
|
||||
'404_site_map' => 'Sitemap',
|
||||
'404_helpful_links' => 'Nützliche Links',
|
||||
'404_recent_pages' => 'Aktuelle Seiten',
|
||||
'404_browse_content' => 'Inhalt durchsuchen',
|
||||
'404_use_navigation' => 'Verwenden Sie die Navigation oben',
|
||||
'404_check_url' => 'Überprüfen Sie die URL auf Tippfehler',
|
||||
'404_search' => 'Seite suchen',
|
||||
'404_back_home' => 'Zurück zur Startseite',
|
||||
'404_error_code' => 'Fehler 404',
|
||||
'404_page_missing' => 'Seite fehlt',
|
||||
'404_try_again' => 'Versuchen Sie es erneut',
|
||||
'404_contact_admin' => 'Kontakt zum Administrator',
|
||||
'all_rights_reserved' => 'Alle Rechte vorbehalten',
|
||||
'copyright' => 'Urheberrecht',
|
||||
'powered_by' => 'Angetrieben von',
|
||||
'last_modified' => 'Zuletzt geändert',
|
||||
'created_on' => 'Erstellt am',
|
||||
'search_results_for' => 'Suchergebnisse für',
|
||||
'search_no_results' => 'Keine Ergebnisse gefunden für',
|
||||
'search_placeholder' => 'Seiten durchsuchen...',
|
||||
'breadcrumb_home' => 'Startseite',
|
||||
'back_to_home' => 'Zurück zur Startseite',
|
||||
'page_not_found' => 'Seite nicht gefunden',
|
||||
'404_message' => 'Die angeforderte Seite konnte nicht gefunden werden.',
|
||||
'404_suggestion' => 'Möglicherweise haben Sie sich vertippt oder die Seite wurde verschoben.',
|
||||
'404_title' => 'Seite nicht gefunden',
|
||||
'close_menu' => 'Menü schließen',
|
||||
'toggle_menu' => 'Menü umschalten',
|
||||
'menu' => 'Menü',
|
||||
'404_use_search_bar' => 'Verwenden Sie die Suchleiste oben',
|
||||
'404_try_searching' => 'Versuchen Sie zu suchen',
|
||||
'404_maybe_looking_for' => 'Suchen Sie vielleicht nach',
|
||||
'404_similar_pages' => 'Ähnliche Seiten',
|
||||
'404_did_you_mean' => 'Meinten Sie',
|
||||
'404_suggestions' => 'Vorschläge',
|
||||
'404_recommended' => 'Empfohlen',
|
||||
'404_featured_content' => 'Empfohlene Inhalte',
|
||||
'404_recent_posts' => 'Aktuelle Beiträge',
|
||||
'404_archive' => 'Archiv',
|
||||
'404_tags' => 'Tags',
|
||||
'404_categories' => 'Kategorien',
|
||||
'404_popular_pages' => 'Beliebte Seiten',
|
||||
'404_advanced_search' => 'Erweiterte Suche',
|
||||
'404_search_tips' => 'Suchtipps',
|
||||
'404_related_content' => 'Verwandte Inhalte',
|
||||
'404_alternative_pages' => 'Alternative Seiten',
|
||||
'404_continue_browsing' => 'Weiter durchsuchen',
|
||||
'404_return_previous' => 'Zurück zur vorherigen Seite',
|
||||
'404_report_issue' => 'Problem melden',
|
||||
'404_site_map' => 'Sitemap',
|
||||
'404_helpful_links' => 'Nützliche Links',
|
||||
'404_recent_pages' => 'Aktuelle Seiten',
|
||||
'404_browse_content' => 'Inhalt durchsuchen',
|
||||
'404_use_navigation' => 'Verwenden Sie die Navigation oben',
|
||||
'404_check_url' => 'Überprüfen Sie die URL auf Tippfehler',
|
||||
'404_search' => 'Seite suchen',
|
||||
'404_back_home' => 'Zurück zur Startseite',
|
||||
'404_error_code' => 'Fehler 404',
|
||||
'404_page_missing' => 'Seite fehlt',
|
||||
'404_try_again' => 'Versuchen Sie es erneut',
|
||||
'404_contact_admin' => 'Kontakt zum Administrator',
|
||||
'all_rights_reserved' => 'Alle Rechte vorbehalten',
|
||||
'copyright' => 'Urheberrecht',
|
||||
'powered_by' => 'Angetrieben von',
|
||||
'last_modified' => 'Zuletzt geändert',
|
||||
'created_on' => 'Erstellt am',
|
||||
'search_results_for' => 'Suchergebnisse für',
|
||||
'search_no_results' => 'Keine Ergebnisse gefunden für',
|
||||
'search_placeholder' => 'Seiten durchsuchen...',
|
||||
'breadcrumb_home' => 'Startseite',
|
||||
'back_to_home' => 'Zurück zur Startseite',
|
||||
'page_not_found' => 'Seite nicht gefunden',
|
||||
'404_message' => 'Die angeforderte Seite konnte nicht gefunden werden.',
|
||||
'404_suggestion' => 'Möglicherweise haben Sie sich vertippt oder die Seite wurde verschoben.',
|
||||
'404_title' => 'Seite nicht gefunden',
|
||||
'close_menu' => 'Menü schließen',
|
||||
'toggle_menu' => 'Menü umschalten',
|
||||
'menu' => 'Menü'
|
||||
];
|
||||
26
engine/lang/fr.php
Normal file
26
engine/lang/fr.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
return [
|
||||
'site_title' => 'CodePress',
|
||||
'home' => 'Home',
|
||||
'search' => 'Search',
|
||||
'search_placeholder' => 'Search...',
|
||||
'search_button' => 'Search',
|
||||
'welcome' => 'Welcome',
|
||||
'created' => 'Created',
|
||||
'modified' => 'Modified',
|
||||
'author' => 'Author',
|
||||
'manual' => 'Manual',
|
||||
'no_content' => 'No content found',
|
||||
'no_results' => 'No results found',
|
||||
'results_found' => 'results found',
|
||||
'breadcrumb_home' => 'Home',
|
||||
'file_details' => 'File details',
|
||||
'guide' => 'Guide',
|
||||
'powered_by' => 'Powered by',
|
||||
't_powered_by' => 'Powered by',
|
||||
'directory_empty' => 'This directory is empty',
|
||||
'page_not_found' => 'Page Not Found',
|
||||
'page_not_found_text' => 'The page you are looking for does not exist.',
|
||||
'mappen' => 'Folders',
|
||||
'paginas' => 'Pages'
|
||||
];
|
||||
@ -18,8 +18,9 @@
|
||||
{{current_lang_upper}} <i class="bi bi-chevron-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a class="dropdown-item" href="?lang=nl{{lang_switch_url}}">NL</a></li>
|
||||
<li><a class="dropdown-item" href="?lang=en{{lang_switch_url}}">EN</a></li>
|
||||
{{#available_langs}}
|
||||
<li><a class="dropdown-item {{#is_current}}active{{/is_current}}" href="?lang={{code}}{{lang_switch_url}}">{{native_name}}</a></li>
|
||||
{{/available_langs}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -33,8 +34,9 @@
|
||||
{{current_lang_upper}} <i class="bi bi-chevron-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a class="dropdown-item" href="?lang=nl{{lang_switch_url}}">NL</a></li>
|
||||
<li><a class="dropdown-item" href="?lang=en{{lang_switch_url}}">EN</a></li>
|
||||
{{#available_langs}}
|
||||
<li><a class="dropdown-item {{#is_current}}active{{/is_current}}" href="?lang={{code}}{{lang_switch_url}}">{{native_name}}</a></li>
|
||||
{{/available_langs}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -271,12 +271,12 @@ footer {
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
/* Search input text color */
|
||||
.search-input {
|
||||
color: #212529 !important;
|
||||
/* Search input text color - override navbar form-control styling */
|
||||
.navbar .form-control.search-input {
|
||||
color: #000000 !important;
|
||||
}
|
||||
|
||||
.search-input::placeholder {
|
||||
.navbar .form-control.search-input::placeholder {
|
||||
color: #6c757d !important;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user