Czy Phalcon udostępnia dowolne narzędzie do wielojęzycznych stron internetowych?Ośrodek tłumaczeń w Phalcon
Co to jest najlepsza praktyka w tworzeniu witryny opartej na phalconie MVC? Jak powinienem zaimplementować warstwę widoku?
Czy Phalcon udostępnia dowolne narzędzie do wielojęzycznych stron internetowych?Ośrodek tłumaczeń w Phalcon
Co to jest najlepsza praktyka w tworzeniu witryny opartej na phalconie MVC? Jak powinienem zaimplementować warstwę widoku?
Aplikacja próbki (https://github.com/phalcon/php-site) realizuje tłumaczenia przy Phalcon.
Phalcon nie oferuje funkcjonalności I18n. Istnieje rozszerzenie PECL, które oferuje tę funkcję, o nazwie intl (patrz manual).
Jednakże, jeśli jesteś zainteresowany głównie w prezentacji na stronie internetowej w różnych językach, można użyć komponentu
\Phalcon\Translate\Adapter\NativeArray
. Ten składnik wykorzystuje tablicę kluczy/wartości, które zawierają ciągi zawierające język. Na przykład można użyć tego w config:
$trans_config = array(
'en' => array(
'bye' => 'Good Bye',
'song-key' => 'This song is %song% (%artist%)',
),
'es' => array(
'bye' => 'Adiós',
'song-key' => 'La canción es %song% (%artist%)',
),
);
test wykazać powyższe użycie jest:
public function testVariableSubstitutionTwoEnglish()
{
$language = $trans_config['en'];
$params = array('content' => $language);
$translator = new \Phalcon\Translate\Adapter\NativeArray($params);
$vars = array(
'song' => 'Dust in the wind',
'artist' => 'Kansas',
);
$expected = 'This song is Dust in the wind (Kansas)';
$actual = $translator->_('song-key', $vars);
$this->assertEquals(
$expected,
$actual,
'Translator does not translate English correctly - many parameters'
);
}
Powyższy tylko pokazuje, w jaki sposób można uzyskać tłumaczone wiadomości ze zmiennymi zastępczymi. Aby uzyskać ciąg znaków w innym języku, wystarczy zadzwonić pod numer _()
za pomocą odpowiedniego klucza i nie przekazać żadnych zmiennych.
EDYTOWANIE W widoku możesz pracować tak, jak lubisz. Możesz ustawić zmienne, które są wyświetlane w warstwie widoku lub przekazać obiekt tłumaczenia i wykonać tam tłumaczenie. Zależy od Ciebie.
HTH
Dzięki, Jaki inny adapter zamierzasz zaimplementować? Tworzenie i używanie takich tablic jest trochę rozwlekłe, także lepiej było, jeśli można użyć '_ ('x', array ('1', '2'))' oprócz '_ ('x', array (' a '=>' 1 ',' b '=>' 2 ')) '. Czy dobrze jest utworzyć nazwę usługi 't', do której można uzyskać dostęp za pomocą widoków? – PHPst
Co to są plusy i minusy używania '\ Phalcon \ Translate \ Adapter \ NativeArray' zamiast Gettext? – PHPst
Re Gettext jest bardzo mały, głównie na podstawie wydajności i preferencji. Wydajność w rzeczywistości nie jest wielkim problemem. –
Myślę, że najlepszym rozwiązaniem jest użycie Phalcon Gettext Adapter. Najważniejszą zaletą Gettext jest obsługa liczby mnogiej.
Jak korzystać z gettext w architekturze Phalcon? – PHPst
Pozwól mi utworzyć przykład dla ciebie – twistedxtra
Pamiętaj jednak, że gettext nie jest bezpieczny dla wątków, jeśli używasz aplikacji z Apache możesz mieć problemy – twistedxtra