다국어 웹 사이트 또는 응용 프로그램을 개발할 때는 언어 파일의 무결성을 유지하는 것이 중요합니다. 기능이 증가함에 따라 새 필드가 기본 언어 파일에 추가 될 수있어 다른 언어 파일에서 해당 필드가 누락 될 수 있습니다. 이 시점에서 우리는 모든 언어 파일의 무결성을 확인하고 보장하는 방법이 필요합니다. PHP의 array_diff_key () 함수는 우리가이를 잘 달성하는 데 도움이 될 수 있습니다.
Array_Diff_Key () 함수는 두 개 이상의 배열의 키를 비교하고 다른 배열에 있지 않은 첫 번째 배열의 모든 키를 포함하는 배열을 반환하는 데 사용됩니다. 이는 언어 파일의 필드 누락을 확인하는 데 매우 유용합니다. 우리는이를 사용하여 다른 언어 파일의 키를 비교하여 각 언어 파일에 필요한 모든 필드가 포함되도록합니다.
기본 언어 파일 (예 : 영어 파일)이 있고 다른 언어 파일 (예 : 중국어, 프랑스어 등)에 누락 된 필드가 없다고 가정 해 봅시다. Array_Diff_Key ()를 사용하여 이러한 파일의 주요 값을 비교하고 누락 된 필드를 찾을 수 있습니다.
우리의 언어 파일은 다음 구조와 유사한 배열에 저장되어 있다고 가정합니다.
영어 파일 ( en.php ) :
return [
'welcome_message' => 'Welcome to our website!',
'login_button' => 'Login',
'logout_button' => 'Logout',
'contact_us' => 'Contact Us'
];
중국어 파일 ( zh.php ) :
return [
'welcome_message' => '당사 웹 사이트에 오신 것을 환영합니다!',
'login_button' => '로그인하십시오',
// 'logout_button' => '로그 아웃하십시오', 여기에 누락되었습니다 'logout_button' 전지
];
이제이 두 언어 파일을 Array_Diff_Key () 를 통해 비교하여 중국 파일에서 누락 된 필드를 찾으려고합니다.
// 영어 및 중국어 파일을로드하십시오
$en = include('en.php');
$zh = include('zh.php');
// 중국어 파일의 열쇠를 영어 파일과 비교,找出缺失的전지
$missingFields = array_diff_key($en, $zh);
// 输出缺失的전지
if (!empty($missingFields)) {
echo "以下전지在中文语言文件없어진:\n";
foreach ($missingFields as $key => $value) {
echo "- $key\n";
}
} else {
echo "中文语言文件没有缺失任何전지。\n";
}
언어 파일로드 : 포함 ()을 사용하여 en.php 및 zh.php 파일을로드합니다.
Call array_diff_key () : array_diff_key ($ en, $ zh)를 통해 영어 및 중국어 파일의 키를 비교하십시오. Array_Diff_Key ()는 영어 파일이지만 중국어 파일에 있지 않은 키를 포함하는 배열을 반환합니다.
출력 누락 필드 : 반환 된 $ MissingFields 배열이 비어 있지 않은 경우 중국어 파일에서 일부 필드가 누락되었음을 의미합니다. 우리는 루핑을 통해 누락 된 필드를 출력합니다.
여러 언어 파일의 무결성을 확인 해야하는 경우 비슷한 접근 방식을 사용하여 각 언어 파일을 기본 언어 파일과 비교하여 모든 필드가 번역되도록 할 수 있습니다. 예를 들어 체크 로직을 함수로 캡슐화 할 수 있습니다.
function checkMissingFields($primaryLangFile, $compareLangFile) {
$primaryLang = include($primaryLangFile);
$compareLang = include($compareLangFile);
$missingFields = array_diff_key($primaryLang, $compareLang);
if (!empty($missingFields)) {
echo "以下전지在 $compareLangFile 없어진:\n";
foreach ($missingFields as $key => $value) {
echo "- $key\n";
}
} else {
echo "$compareLangFile 没有缺失任何전지。\n";
}
}
// 영어와 중국어 문서의 비교
checkMissingFields('en.php', 'zh.php');
// 영어와 프랑스어 문서의 비교
checkMissingFields('en.php', 'fr.php');
php의 array_diff_key () 함수를 사용하여 다국어 파일에서 누락 된 필드를 효율적으로 확인할 수 있습니다. 이렇게하면 다른 언어의 파일이 일관성이 있고 번역 생략으로 인해 불완전한 인터페이스 디스플레이를 피합니다. 이러한 방식으로 다국어 프로젝트의 품질과 유지 가능성을 크게 향상시킬 수 있습니다.