В настоящее время я интернационализирую существующий проект PHP и думаю, что самый простой способ сделать это - просто интегрировать I18n + gettext.
В настоящее время у меня есть I18n.php:
<?php
setlocale(LC_ALL, 'de_DE.UTF-8');
bindtextdomain('cms', './locale');
textdomain('cms');
?>
Что входит в каждый файл, требующий перевода.
Пример: login.inc.php:
include_once("i18n.php");
...
<tr>
<td width='40%' align='right'>"._('User Name').":</td>
<td width='60%'><input name='USERNAME' type='text' class='login_txt'></td>
</tr>
<tr>
<td align='right'>"._('Password').":</td>
<td><input name='PASSWORD' class='login_txt' type='password'></td>
</tr>
...
Это вроде работает, но у меня есть одна странная проблема. Это только переводит вещи как 2 из 10 раз, когда я загружаю эту страницу (2x «Benutzername», 8x «User Name»). Кто-нибудь знает, что может вызвать эту проблему? Я пытаюсь понять это уже час, но до сих пор не понимаю.
Поскольку я уже пишу здесь: кто-нибудь знает лучший подход к интернационализации существующего проекта PHP?
Спасибо!