[TYPO3-dev] [Typo3-Dev] indiscriminate of i18n and languages in typo3.

Dennis Cheung hkdennis2k at gmail.com
Wed Jan 25 11:15:43 CET 2006


Hi,

I am working of some language works of typo3.
But I found it is very confused.

Let me describe how it works, correct me if I wrong.

Frontend
1. RealUrl read 'preVars' from readable name(e.g. en, dk,) into $_GET['L']
2. tx_realurl_advanced takes 'languageGetVar' ('L'  usually) from
$TSFE->typolink() for encode the path
3. you have to defined typoscript [globalVar:GP:L=1] to config.sys_language_id
4. (How it use config.sys_language_id )
5. TS function 'select' will use "languageField" with "config.sys_language_id"
6. TSFE use "config.language" for function (e.g. getLL)
7. FE uses $TSFE for locallang
8. TS stdWrap.lang was used to override language

Backend
1. BE_USER->lang is just a default value to BE_USER->uc['lang']
2. Number of languages limited by an constant 'TYPO3_languages'
3. FE uses $LANG for locallang

Common
 When reading XML
    It unicode from xml
    encode into native charset
    cache native charset
    encode native charset into render charset

The problems:
 'L' is not a constant, it may changes. (In fact, you won't)
  'L'  to 'config.language' mapping is not singleton.
 'L'  to 'sys_language_id' mapping is not singleton.
  Charset of BE are hardcoded.
  Waste resource to decode/encode even it is using UTF-8.
  UTF-8->native->UTF-8 may cause text broken in some case(e.g. BIG5 is
never a standard, there are different versions and subset)
  stdWrap.lang should be EOL, replaced my getData LLL
  be behaviour $TSFE and $LANG with same function name may different.
  Not maintainable if you have many language.

I did read any news of typo3 4.0 about the language. Please update me
if any changes.

Is there any plan to reorder that system?

e.g. my idea

1. drop define(TYPO3_languages), 'sys_language' table, config.lanauge
    replaced by setting in chc_xx/ext_locallang.php
    change 'L' into a SYS_CONF constant
-
people won't change number of languages frequency.
It should fit everyone wanted.



2. make FE and BE both using $LANG
-
I am not sure the behaviour of $LANG and $TSFE has any difference.
Some of the function look like equals.


3. change xml cached charset into UTF8
(won't encode reading xml style locallang.xml in unicode)
(encode to utf8 when reading old style locallang.php)
-
I have did it already, but may have bug on backward compatible.
But it works with locallang.xml and locallang.php style langauge pack.



Dennis




More information about the TYPO3-dev mailing list