2013-05-14 4 views
0

안녕하세요, PHP에서 multilenguaje 앱을 작성합니다.이 스크립트는 multilenguaje를 처리하는 데 처음 사용됩니다. 예를 들어 개월 동안변수를 데이터베이스에 변수로 저장하십시오.

나는 테이블 "달"사용자 테이블에서 id | month estructure

에있는 난이 id | username | month_id

내 생각 엔 (나쁜 생각)의 난 예를 들어 저장할 수 있습니다 $ january는 데이터베이스에서 직접 호출되므로 PHP에서는 호출시 정의 된 변수를 찾습니다.

$ january = "january"; 그리고 스페인어 웹에 메신저면 나는 이것을 $ january = "Enero"로 바꾼다.

하지만이

어떻게 어떤 메신저를위한 최선의 방법이해야 할 노력하고있다 .. 원인 (IT 월 통화 $의 결과로 인쇄하기 때문에 obviusly, 그것의 데이터베이스 월 $로 저장) 작동하지 않습니다 메신저는이 시점에서 길을 잃었습니다. 나는 데이터베이스에서이 구조를 필요로합니다. 지금은 언급하지 않을 것입니다.

감사합니다!

내 코드

$row2['months']

인쇄 PHP 코드에서 내가 $ 1월 = "enero"을 설정하더라도이 $january

;

+0

일반적으로 "january"문자열로 저장하고 phparray, gettext'_ ("january")'또는 Tmx와 같은 변환 어댑터를 사용하여 출력합니다. – pce

+0

like this $ lang [ '$ row2 ['months ']'] –

+0

변수를 테이블에 저장하려면 먼저 변수를 [serialize] (http://php.net/manual/en/function.serialize.php)하십시오. 삽입하고 [unserialize] (http://www.php.net/manual/en/function.unserialize.php)를 클릭하십시오. 언어 파일을 사용하는 것이 더 나은 접근 방법이라고 생각합니다. – Khaleel

답변

-1

하는 PHP는 그 변수를 평가하기 위해 얻으려면, 당신이해야 할 일 평가입니다 : http://ideone.com/f0LCT0

+0

echo는 PHP_EOL입니다. –

+2

에 대한 (이 경우) 데이터베이스에서 열을 평가하지 않을 것이므로 이것은 불필요한 보안 위험입니다. – pce

+3

@DreaminMediaQueretaro이 질문에 답변했지만 끔찍한 충고입니다. 계획중인 방식으로 언어를 구현해서는 안됩니다. Ihsans가 대답을 대신보십시오. 유지하는 것이 훨씬 더 쉬울 것입니다. – Bart

1

예를 들어 사용자 로캘을 저장해야합니다. 테이블에 en_US을 입력하고 해당 값을 기본 언어로 폴백하여 추가로 변환하십시오.

4

당신은 당신의 전략을 재고 있습니다 ideOne에 여기

$january='Enero'; 
$row='$january'; 

echo $row;      //Prints $january 
echo PHP_EOL; 
echo eval("return ".$row.";"); //Prints Enero 

.

예 : 당신이 달의 이름이나 실제로 모든 언어 로케일 단어를 정의하는 10 개 PHP 파일을 유지하는 경우

(10)의 경우 언어, 그것은 충분하고 데이터베이스를 방해하지 않고 이들을 포함 할 수 있습니다. 당신은 예를 들어 지속적으로 로케일 파일을 구성하는 경우

<?php 

// this is words_en.php, you can make another like words_de.php etc. 
$months = array('january','february','march','april'....etc); 

?> 

:

$msgs = array(
    'MSG1'=>'first message',... 
} 

가 데이터베이스에 또한 코드에 대한 참조 만 (like'MSG1 ')을 유지하고 충분 할 것이다. 몇 개월 동안, 당신은 그것들을 사용하는 것이 구체적이고 숫자 인덱싱이 그들의 경우에 대한 코딩에 일관성을 부여하기 때문에 $ msgs와 구별 할 수 있습니다.

이 언어 로케일에 대한 유일한 방법은 아니지만 유지 관리가 쉬운 버전입니다.

+0

예. 이것은 무엇을하려고합니까 ...하지만 "january"와 같은 데이터베이스에 저장하려면 어떻게해야합니까? 그리고 어떻게 또는 어디서 lenguaje를 지정해야합니까?이 $ lang [ '$ row2 ['months '] '] –

+0

1 월 1 일 (또는 enero)과 같은 달이 있으므로 문제가되지 않으므로 1,2,3 등의 달 색인을 저장하면됩니다. 답변을 편집했습니다. 보세요. – Ihsan

관련 문제