Seite 1 von 1

Sprachversionen und html-Tag Attribut lang

Verfasst: Do 14. Dez 2017, 12:23
von Horst1234
Hallo,
ich möchte in einer zweisprachigen Version einer Website (engl. und deutsch) gerne auch die automatische hyphens im CSS nutzen (-moz-hyphens: auto;
hyphens: auto;). Hierzu benötigt man aber im einleitenden html-Tag die Spezifizierung lang=de und lang=en.
Wenn Contenido Sprachversionen nun synchronisieren soll (das brauche ich), dann kann ich nicht verschiedene Templates oder Module nutzen, bei der Synchronisierung wird ja immer alles wieder auf ein Template zurückgesetzt.
Git es ein Skript für Contenido, das je nach Sprachversion das Attribut lang="de" oder lang="en" ins html-Tag setzt?
Gruß aus Bremen,
Horst

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Do 14. Dez 2017, 13:59
von Faar
Man kann mit der Language ID (im 4.8 noch $lang) auch den Sprachen-Namen aus der DB bekommen, mit dieser Methode (Funktion):
https://api.contenido.org/con490/source ... nguageName

Wenn Du dich da an die internationale Konvention hältst bei der Sprachen Benennung, das heißt deine 1. Sprache "de" und deine zweite "en" statt z.B. "deutsch" oder "english". Damit hast du dann automatisch auch die Kürzel, die in das Metatag kommen.
Nun fehlt dir nur noch ein Container im Head-Bereich deines Layouts und ein Modul dazu, das je nach Language ID den Sprachennamen holt und in den Metatag einfügt. Den Metatag selbst schreibst du in das Modultemplate und im Platzhalter dann eben den Sprachennamen.

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Do 14. Dez 2017, 15:59
von Oldperl
Servus,
Faar hat geschrieben:
Do 14. Dez 2017, 13:59
Wenn Du dich da an die internationale Konvention hältst bei der Sprachen Benennung, das heißt deine 1. Sprache "de" und deine zweite "en" statt z.B. "deutsch" oder "english". Damit hast du dann automatisch auch die Kürzel, die in das Metatag kommen.
Das ist nicht notwendig, denn bei den Mandanten wurde und wird bereits in 4.8 , und auch in 4.9, das Land und die Sprache in den Sprach-Einstellungen festgelegt. Diese kann man über cRegistry::getLanguage()->getProperty("language", "code") ja recht einfach abfragen und damit entweder direkt im Layout oder per Modul den Tag zusammen setzen.

Gruß aus Franken

Ortwin

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Mi 20. Dez 2017, 09:12
von Horst1234
Vielen Dank für die Antworten,
ich werde das durchprobieren,
Horst

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Do 27. Jan 2022, 13:14
von Horst1234
Hallo zusammen,
ich hab das Problem damals mit meinen begenzten Programmierkenntnissen nicht lösen können.
Könnte mir jemand ein Snippet posten, dass ich gleich ins Layout packe, damit im Tag <html lang="xy"> die aktuelle Sprachversion direkt eingelesen wird. Das wär super!
Gruß aus Bremen,
Horst

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Do 27. Jan 2022, 14:20
von chris8408
Hallo Horst,

ich weiß nicht genau, ob ich dich richtig verstanden habe.

Du möchtest im Quelltext der Ausgabe im Tag <html lang="xy"> das XY durch den jeweiligen Namen der Sprache (die du dann de oder en genannt hast) ersetzen. Richtig?

Ich würde das über einen Container lösen.

Container in den Tag bauen:
<html lang="<container id="100" name="sprachenname" types="head" mode="fixed" default="sprachenname">sprachenname</container>">

Dann Modul mit folgendem Output anlegen

Code: Alles auswählen

<?php
$languageCollectionInstance = new cApiLanguageCollection();
$currentLanguageId = cRegistry::getLanguageId();
echo $languageCollectionInstance->getLanguageName($currentLanguageId );
?>
Modul in der Vorlage zuordnen...

Meist du sowas?

Gruß, Christian

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Do 27. Jan 2022, 15:06
von Horst1234
Hallo Christian,

Ja so in der Art, aber ein Container innerhalb eines Tags funktioniert nicht, daher habe ich es so erweitert:

Code: Alles auswählen

<?php
$languageCollectionInstance = new cApiLanguageCollection();
$currentLanguageId = cRegistry::getLanguageId();
echo '<html lang="', $languageCollectionInstance->getLanguageName($currentLanguageId ), '">';
?>
und damit den ganzen html-Tag ersetzt. Klappt perfekt.
Vielen Dank für deine Hinweise,
Gruß,
Horst

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Mo 16. Mai 2022, 17:10
von malsdgtac
Danke, genau das habe ich gerade gesucht

Re: Sprachversionen und html-Tag Attribut lang

Verfasst: Fr 20. Mai 2022, 07:29
von Oldperl
Servus,
Horst1234 hat geschrieben:
Do 27. Jan 2022, 15:06
...aber ein Container innerhalb eines Tags funktioniert nicht
Nun, dann einfach den gesamten Tag in einem Modul generieren.

Gruß aus Franken

Ortwin