여가/학습을 위해 여러 언어로 웹 애플리케이션을 작성하려고합니다. 이보다 더 좋은 방법이 있는지 궁금합니다.PHP의 다국어 웹 애플리케이션 용 메소드
환경
- PHP 만. 지금까지 프레임 워크 나 라이브러리가 없습니다.
상황
영어와 일본어 문장은 단어의 다른 순서를 가지고, 그래서 나는 $user_name . 'decapitated' . $enemy.
같은 간단한 연결이 작동합니다 생각하지 않습니다.
그래서 나는 모든 문장을 데이터베이스에 저장하려고 생각하고 있습니다.
+----+------------------------------------+-----------------------------------+ | id | en | ja | +----+------------------------------------+-----------------------------------+ | 1 | $username has decapitated $enemy. | $username は $enemy の首をはねた! | +----+------------------------------------+-----------------------------------+
텍스트는 내부 $username
같은 일부 변수 나중에 str_replace()
로 대체되어야한다.
$result = str_replace('$username', $username, $db->select('SELECT ja FROM `tb_language` WHERE id = 1;'))
질문
나는 데이터베이스 텍스트 변수를 확장하는 스마트 한 방법을 찾기 위해 노력하지만 난 할 수 없습니다. 어떠한 제안?
str_replace()
을 필연적으로 반복하므로 효율적이지 않습니다. 어떠한 제안?모든 제안은 환영하며 미리 감사드립니다.
하는 경우 당신은 자신의 템플릿 시스템을 굴리기를 원한다. . 'str_replace()'호출 이상으로, 나는 상수 데이터베이스 조회에 대해 걱정할 것이다. 실제로 관계형 데이터가 아닙니다. 적어도 캐시는 잘됩니다. 로드가 허용되면 데이터베이스 쿼리가 완벽하게 정상적으로 수행됩니다. –
댄, 그래, 상수 데이터베이스 조회 내 관심사도 있습니다. 나는 그것이 얼마나 귀찮은 지 판단 할 수 없을 정도로 경험이 많지 않다. language.txt 파일이 더 나은 해결책이라고 생각합니다. – mogami74
language.txt는 훌륭한 솔루션이라고 생각합니다. 아래의 제안 된 솔루션 ('printf()')과 잘 작동합니다; 템플릿을 언어 파일에 넣을 수 있습니다. –