최근 Apache2를 사용하여 Linux에서 실행되는 PHP 응용 프로그램을 번역하는 데 시간을 보냈습니다. gettext를 작동 시키려면 필자가 지원하고자하는 모든 언어에 대한 시스템 디렉토리를 만져야했기 때문에 모든 언어로 gettext에서 텍스트를 가져올 수있는 더 쉬운 방법이 있는지 궁금합니다.gettext는 어떤 언어를 사용할 수 있는지를 어떻게 알 수 있습니까?
./locale/sv_SE/LC_MESSAGES/default.po
./locale/es_BO/LC_MESSAGES/default.po
및 코드 :
내 로케일 파일은 내 프로젝트의 하위 디렉토리에 다음과 같이 ./gettext.php에 있습니다
이<?php
setlocale(LC_ALL, "es_BO.utf8");
bindtextdomain("default", "locale/"); # usually works
textdomain("default");
echo echo _("test");
?>
C 코드가 정확히입니다 동일한 코드이지만 일부 헤더가 있습니다.
이 코드 출력되지 않게 내가 es_BO에 이미 존재하는 SV_SE 로케일 연결이 추한 해킹과 폭 넓은 볼리비아 스페인어 시스템을 "사용"하지 않으면 나의 스페인어 번역 :
sudo ln -s /usr/lib/locale/sv_SE.utf8 /usr/lib/locale/es_BO.utf8
업데이트를
내 질문이 잘못되었다고 생각하니 "어떻게하면 그 일을 피할 수 있습니까? ln -s 명령을 사용하거나 잘못 입력하면 알려주시겠습니까?" 기본적으로 내가는/usr/lib 디렉토리/로케일 "또는 어떻게 간단한 방법으로 해당 파일을 필요에 gettext 이유를 알고 싶은 유일한 번역 메시지에 gettext를 사용한다.
갱신 2 내가 setlocal(LC_MESSAGES, "es_BO.utf8")
그러나 그것을 사용하여 시도 아직는/usr/lib 디렉토리/로케일의 메시지를 필요로한다.
한 가지를 (또한, gettext를은 현재 로케일을 사용하려고 시도하고, 실패 할 경우에만
C
다시 떨어질 수 전혀 아무것도 파악되지 않습니다) 아마도 LC_ALL의 생각. gettext에서 날짜 형식화 및 숫자 형식화를 읽어야합니다. 그건 내가 아직도/usr/lib/locale에 언어를 가지고있을 필요가 없다. –아하, 너의 여분의 설명이 훨씬 더 의미가있다. 나는 Bort가 이것을 다루었다고 생각해. :) – sarnold
포인터에 대한 감사합니다, 나는 내 자신의 (너무 밝은) 문학의 광휘에서 길을 잃는 경향이 있습니다. :-) –