PDA

Просмотр полной версии : locallang.php и русский язык


Lucifer
28.12.2009, 16:04
Есть довольно много расширений, в которых используется php файл локализации. И в таких расширениях русский язык нормально не работает. Сам я в такие файлики вставлял русские буквы в виде html.
Может есть какой нить не сложный, и более правильный способ подправить это? Или переключить где то кодировку, или подменить на xml или еще что.
ЗЫ: везде кодировки норм.

unixman
28.12.2009, 19:30
А какая кодировка в BE?

Lucifer
30.12.2009, 18:16
Все утф

unixman
30.12.2009, 18:48
Попробуй поставить кодировку файла locallang.php utf-8 или utf-8(без BOM)
Я помню вроде что-то такое делал и помогало

Lucifer
31.12.2009, 10:46
не, файл тоже в утф. не помогает

Pavel Antonov
31.12.2009, 11:59
Для этого есть специальное расширение - llxml. Оно позволяет выгрузить старые locallang.php в новый формат locallang.xml и отредактировать переводы. После этого файлы переводов можно хранить и копировать в новые проекты.

Lucifer
31.12.2009, 12:13
Об этом расширении я знаю... Но о такой функции что то не замечал. Вроде только переводит уже имеющиеся файлы.

jettero
01.01.2010, 13:57
Есть довольно много расширений, в которых используется php файл локализации. И в таких расширениях русский язык нормально не работает. Сам я в такие файлики вставлял русские буквы в виде html.
Может есть какой нить не сложный, и более правильный способ подправить это? Или переключить где то кодировку, или подменить на xml или еще что.
ЗЫ: везде кодировки норм.

а в какой кодировке вставляете?
файлы locallang.php не имеют единой кодировки - у каждого языка внутри него она своя, то есть надо руские лейблы редактировать в кодировке win1251
если хотите лейблы редактировать в utf-8, то надо в locallang.xml переводить

Lucifer
09.01.2010, 10:55
Как уже говорил, все в утф. Так и понял, что надо в xml. вот и спрашивал, как это сделать проще всего.

jettero
11.01.2010, 15:19
Проще всего это сделать сконвертировав автоматически с помощью экстеншена. Но для этого нужен "правильный" locallang.php то есть где русские лейблы в cp1251. А если вы его сделаете как надо, в cp1251, то и делать xml уже не понадобиться :)
Насколько я помню кодировка лейблов в locallang.php никак не коррелирует с кодировкой сайта – перекодировки делаются автоматически.

Lucifer
14.01.2010, 15:21
правельная кодировка - cp1251? О_о
А в чем юмор?

jettero
15.01.2010, 17:41
Так сделаны файлы locallang.php
лейблы каждого языка в нем в своей национальной кодировке.

И это вполне логично, а как еще сделать, если надо в одном файле разместить лейблы на английском, французском, немецком и русском и притом этот файл не в utf-8 ? :)

Lucifer
18.01.2010, 10:23
Тоже вопрос... Почему этот файл нельзя поставить в uft-8?

Valery Romanchev
18.01.2010, 12:18
Есть довольно много расширений, в которых используется php файл локализации. И в таких расширениях русский язык нормально не работает. Сам я в такие файлики вставлял русские буквы в виде html.
Может есть какой нить не сложный, и более правильный способ подправить это? Или переключить где то кодировку, или подменить на xml или еще что.
ЗЫ: везде кодировки норм.
можно вставлять русификацию в TS примерно так

plugin.tx_srquiz_pi1{

_LOCAL_LANG.ru {
quiz_taker_prompt = Пожалуйтса, введите имя и email адрес
quiz_taker_name_label = Ваше имя:
quiz_taker_email_label = Ваш email адрес:
missing_quiz_taker_name = Пожалуйста, введите имя
invalid_quiz_taker_email = Пожалуйста, введите правильный email адрес
entry_button_label = Начать тест
second_entry_attempt = Извините, вы не можете пройти этот тест второй раз.
quiz_question_label = Вопрос
quiz_answer_label = Это ваш ответ:
false = Ложь
true = Истина
submit_button_label = Отправить эти ответы
submit_button_label_single_question = Отправить этот ответ
quiz_correct_answer_label = Вот верный ответ:
answer_explanation_label = Объяснение:
no_answer = Нет ответа
incorrect_answer_label = Неверный ответ
take_again_button_label = Пройдите тест снова
email_quizResults_subject1 = Спасибо за прохождение теста
email_quizResults_subject2 =
email_quizResults_title1 = Уважаемый(ая)
email_quizResults_title2 = ,
email_quizResults_text1 = Спасибо за прохождение теста
email_quizResults_text2 =
email_quizResults_text3 =
results_label = Вот ваши результаты:
numberCorrectAnswers_label = Число правильных ответов:
numberQuestions_label = Всего вопросов:
score_label = Очки:
congratulations = Поздравляем!
email_quizResults_text4 =
email_signature = Посетите наш веб-сайт!
email_quizTaken_subject1 =
email_quizTaken_subject2 = пройдите тест
email_quizTaken_title1 = Добрый день
email_quizTaken_title2 = :
email_quizTaken_text1 = на
email_quizTaken_text2 = прошел тест
email_quizTaken_text3 = Это его/ее результаты:
email_label = Email адрес:
}
}

jettero
19.01.2010, 04:54
Тоже вопрос... Почему этот файл нельзя поставить в uft-8?

locallang.php из тех времен когда UTF-8 был не так распространен и ядро с ним работает как с файлом в 8 битной кодировке и делает нужные перекодировки из национальной кодировки в кодировку FE

поэтому, если вы его сделаете мультибайтным (utf-8) это ни к чему не приведет, только к тому, что механизм перестанет работать как задумано

locallang.xml же позволяет хранить лейблы и редактировать в utf-8, за исключением этого никаких другой разницы нету

лично я продолжаю по-старинке пользоваться locallang.php, у меня подозрение, что это работает быстрее, так как не надо парсить xml, хотя я не проверял, утверждать не буду