2013-08-14 10 views
5

Używam gettext() do tłumaczenia niektórych tekstów na mojej stronie. W większości są to krótkie teksty/przyciski jak „Back”, „Nazwa”, ...Gettext() z większymi tekstami

// I18N support information here 
$language = "en_US"; 
putenv("LANG=$language"); 
setlocale(LC_ALL, $language); 


// Set the text domain as 'messages' 
$domain = 'messages'; 
bindtextdomain($domain, "/opt/www/abc/web/www/lcl"); 
textdomain($domain); 

echo gettext("Back"); 

Moje pytanie brzmi, jak „długi” może ten tekst (id) jest w echo gettext („”) części ?

Czy spowalnia proces długich tekstów? Czy to też działa dobrze? Jak to na przykład:

echo _("LZ adfadffs is a VVV contributor who writes a weekly column for Cv00m. The former Hechinger Institute Fellow has had his commentary recognized by the Online News Association, the National Association of Black Journalists and the National "); 

Odpowiedz

5

Oficjalna gettext documentation tylko ma taką radę:

przetłumaczenia powinna być ograniczona do jednego ustępu; nie pozwól, aby pojedyncza wiadomość była dłuższa niż dziesięć linii. Powodem jest to, że gdy zmienia się ciąg tłumaczenia, tłumacz ma do czynienia z zadaniem aktualizacji całego przetłumaczonego ciągu. Być może tylko jedno słowo zmieni się w angielskim tekście, ale tłumacz tego nie widzi (z obecnymi narzędziami do tłumaczenia), dlatego musi sprawdzić całą wiadomość.

Nie ma oficjalnego ograniczenia długości pasków i mogą oczywiście przekraczać co najmniej "jeden akapit/10 linii".

Dla długich łańcuchów nie powinno być praktycznie żadnej mierzalnej wydajności.

+0

Ok więc jeden akapit lub 10 linii jest już dość długo (w moim przypadku). Zastanawiam się nad "dłuższymi łańcuchami", takimi jak 40-50 słów w porównaniu z krótkimi łańcuchami, np. 5-10 słów. Więc jeśli mam to dobrze, 50 słów nie powinno być dużym problemem. –

0

funkcja gettext http://www.php.net/manual/en/function.gettext.php

jest zdefiniowana jako wejście strun tak pamięć urządzenia będzie czynnikiem ograniczającym.

spróbuj porównać ją z mikrotime lub lepiej z xdebug, jeśli masz go na maszynie programistycznej.

Powiązane problemy