почему ckan не может использовать китайский язык?

Я установил Ckan, следуя пути «из исходников». Но после того, как он был установлен, я не могу найти китайский язык в меню Drop-dwon «язык» на веб-странице.

Проверил папку ckan i18n, а в ней zh_CN и zh_TW. Когда я изменяю «locale_default» на zh_CN в файле конфигурации, возникает ошибка «язык по умолчанию zh_CN недоступен», и Ckan не может работать. Я пытался установить ckan несколько раз, и каждый раз встречал эту проблему.

Затем я установил Ckan способом "из пакета". Хорошо, я могу найти «中文(中国)» (китайский) в раскрывающемся меню, но когда я создаю набор данных и смотрю на набор данных с установленным китайским языком, появляется ошибка «Ошибка сервера, произошла внутренняя ошибка сервера». ". Но когда я выберу любой другой язык, все будет в порядке.

Кто-нибудь знает, как решить эту проблему?


person Liang W    schedule 30.05.2016    source источник


Ответы (2)


Обе эти проблемы являются ошибками. Я создал две задачи в репозитории:

https://github.com/ckan/ckan/issues/3073

https://github.com/ckan/ckan/issues/3074

Спасибо, что отметили эти

person amercader    schedule 31.05.2016
comment
Спасибо за ваш ответ. Наконец, я решил установить ckan из пакета и изменил formatter.py в строке 147. Я удалил функцию _(), после чего я могу создать набор данных и ввести его на веб-странице. Похоже, проблема связана с отметкой времени на веб-странице набора данных. Теперь эта строка может отображаться только как китайский язык, какой бы язык я ни выбрал. - person Liang W; 01.06.2016

Когда вы устанавливаете ckan из пакета, действительно есть ошибка в том, как работает форматирование строк для китайской локали. Это связано с тем, что строка перевода была ошибочно изменена. Вы можете исправить это, изменив китайский файл ckan.po и перекомпилировав его в файл .mo, который собирается formatters.py. Это было бы более чистым обходным путем, чем изменение самого файла python.

Для этого cd в /usr/lib/ckan/default/src/ckan/ckan/i18n/zh_CN/LC_MESSAGES/ и отредактируйте строку 962 (должна начинаться с msgstr и иметь комментарий заголовка # ckan/lib/formatters.py:146). Там нужно убрать все китайские иероглифы в фигурных скобках и заменить их английскими. Вероятно, проще всего просто скопировать строку из msgid одной строкой выше, хотя вы также можете изменить порядок месяца, дня, года здесь, если хотите...).

Как только это будет сделано, используйте msgfmt (если не установлено, сделайте sudo apt install msgfmt), чтобы снова скомпилировать строки перевода:

sudo msgfmt ckan.po -o ckan.mo

После этого перезапустите апач с sudo service apache2 restart. Теперь вы больше не должны видеть эту ошибку.

person k-nut    schedule 03.06.2016
comment
Обратите внимание, что это также должно быть исправлено в следующем выпуске патча. - person k-nut; 09.06.2016