모듈:이름에서 언어/태그 지정
Module| 이 Lua 모듈은 약 2,700페이지에 걸쳐 사용되고 있으며, 변경은 널리 알려져 있습니다.모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경 내용을 테스트합니다.변경을 실장하기 전에 토크 페이지에서 변경에 대해 논의해 주십시오. |
| 이 모듈은 다음 다른 모듈에 의존합니다. |
이 모듈에서는 모듈이 사용하는 언어 이름(키)과 언어 태그(값) 지원 테이블을 만듭니다.Lang. 데이터는 모듈에서 가져옵니다.언어/데이터:
rev_lang_table– 데이터:lang_name_table.lang테이블rev_override_table– 데이터:override테이블
이러한 역방향 데이터 테이블은 로딩되어 사용됩니다._name_from_tag().
현지의 lang_data = 음.로드 데이터 ('모듈:언어/데이터'); -- 언어명 덮어쓰기 및 변환 툴팁 테이블 현지의 lang_name_table = lang_data.lang_name_table; -- 언어 코드, 이름, 지역, 스크립트, 억제된 스크립트 현지의 lang_table = lang_name_table.언어; -- 언어 코드, 이름 현지의 lang_dep_table = lang_name_table.lang_dep; -- 사용되지 않는 언어 코드, 이름 현지의 오버라이드_테이블 = lang_data.덮어쓰다; 현지의 rev_module_table = {}; -- lang_table과 같기 때문에 언어명은 키, 언어태그는 값입니다. 현지의 rev_dev_dep_table = {}; -- lang_dep_table과 같기 때문에 언어명은 키, 언어태그는 값입니다. 현지의 rev_module_table = {}; -- override_table과 동일하지만 반전됩니다. 현지의 dedabed_names_list = {}; --- 중복 제외된 이름과 태그 목록을 보유합니다. --[------------------------------------------------------------------------------------------------------------------- <name>(키)와 <tag>(값) 쌍을 <rev_list>에 추가하는 로컬 함수 <name>/<tag> 쌍(<tag>는 ISO 639-1), 기타 <name>/<tag> 쌍은 모두 덮어씁니다.재정의를 작성할 때 부적절한 마스킹이 되지 않도록 <이름>이 적절히 지워지지 않도록 주의한다. ]] 현지의 기능. rev_list_add (rev_list, 이름., 태그) 한다면 rev_list[이름.] 그리고나서 -- 이미 <rev_list>에 있는 경우 한다면 2 == 태그:렌() 그리고나서 --이것은 2글자 코드입니까? rev_list[이름.] = 태그; -- 네, <rev_list>의 3 문자의 언어 <name>와 <tag>의 쌍을 덮어씁니다. 끝. 또 다른 -- 아직 <rev_list>에 포함되지 않은 경우 여기에 표시됩니다. rev_list[이름.] = 태그; -- 언어 <name>과 <tag>(값) 쌍을 <rev_list>에 추가합니다. 끝. 끝. --[--------------------------------------------------------------------------------------------------------------- 는 <name>/<tag> 쌍을 dedabbed_names_list에 추가합니다(<name>이 존재하지 않는 경우).<name>이 에 존재하는 경우 리스트에서는, 리스트 되고 있는<tag>를 빈 문자열로 설정 해제합니다.테이블에 다른 <name>/<tag>쌍을 지정할 수 없습니다. 키(<name>)는 다른 <name>/<tag>쌍과 공유됩니다. ]] 현지의 기능. dedabbed_names_list_add (톡톡 두드리다, 이름., 태그) 한다면 0 ~= 톡톡 두드리다 그리고나서 -- 탭이 제거된 경우 한다면 dedabed_names_list[이름.] 그리고나서 -- 이 dedabed 이름이 테이블에 있는 경우 다른 dabs를 가진 이름이 여러 개 있습니다. dedabed_names_list[이름.] = ''; -- 설정되지 않았지만 너무 설정되지 않음 또 다른 dedabed_names_list[이름.] = 태그; -- 이름/태그 쌍을 추가합니다(이 이름만 제외된 경우). 끝. 끝. 끝. --[--------------------------------------------------------------------------------------------------------------- <tag>가 빈 문자열이 아닌 경우 지정된 <rev_list>에 <name>/<tag> 쌍을 추가합니다. ]] 현지의 기능. dedabed_to_rev_list_add (rev_list, 이름., 태그) 위해서 이름., 태그 에 쌍들 (dedabed_names_list) 하다 -- 역테이블에 dedabed <name>/<tag> 쌍을 추가합니다. 한다면 '' ~= 태그 그리고나서 --<name>/<tag>가 여러 개의 dab으로 인해 설정 해제되지 않은 경우 rev_list_add (rev_list, 이름., 태그); --추가 끝. 끝. 끝. --[--------------------------------------------------------------------------------------------------------------- 모듈의 데이터에서 태그 시작 테이블을 만듭니다.템플릿이 언어 태그를 가져올 수 있도록 언어/데이터를 태그에서 얻은 {{filename}} 템플릿과 동일한 이름입니다.변환에서는 ISO 639-1 코드가 우선됩니다. 다음 테이블의 데이터는 모듈의 tag_from_name()에 의해 사용됩니다.언어 <name>이 불명확하게 되어 있는 경우는, 그 조작이 행해지지 않는 한, 탭 없이 추가의 <name>엔트리를 작성합니다. 소스 내의 실제 이름들과 충돌합니다. dab 없는 <name>은 항상 목록에 추가됩니다.이 규칙은 다음 3개의 Marwari 언어 코드/이름 쌍으로 인해 발생합니다. mwr: Marwari - – 도핑 없음 mwr로 인해 이러한 엔트리는 중복 제외되지 않습니다. rwr: 마와리(인도) mve: 마르와리(파키스탄) 모두 동일한 기본 이름을 공유하므로 중복 제거된 엔트리는 없습니다. ["yaka"] = "axk" -- 이 두 언어 중 하나에 대해 잘못된 것입니다. ["야카(중앙아프리카공화국)" = "axk", ["yaka(야카)" = "iyx", ["야카(콩고공화국)" = "야프" '액스크'를 찾았다고 해여기에는 Dab이 포함되어 있기 때문에 rev_lang_table{}에 Dabbed 폼을 추가합니다.그럼 들여다보자 dedabbed_names_list{}를 클릭하여 ["yaka"]가 이미 존재하는지 확인합니다.그렇지 않기 때문에 다음과 같이 추가합니다. ["yaka"] = "axk", 나중에 "야프"를 찾을 수 있습니다.여기에는 Dab이 포함되어 있기 때문에 rev_lang_table{}에 Dabbed 폼을 추가합니다.그럼 들여다보자 dedabbed_names_list{}를 클릭하여 ["yaka"]가 이미 존재하는지 확인합니다.네, 그러니까 두 개 이상의 언어가 코드는 중복 배제된 언어 이름 키를 생성할 수 있습니다.하나밖에 없습니다.["yaka"]가 이미 들어가 있기 때문에 dedabbed_names_list{} 테이블 ["yaka"]엔트리를 빈 문자열로 설정 해제했습니다. ["yaka"] = ' , 나중에 "iyx"를 찾아서 rev_disc_table{}에 추가합니다.dedabbed_names_list{}를 조사하면 ["yaka"]이(가) 빈 문자열로 설정되지 않았으므로 아무것도 하지 마십시오. rev_lang_table{}에 이름/코드 추가를 마쳤으면 dedabbed_names_list{}에서 스핀하여 비어 있지 않은 문자열을 모두 추가합니다. 이름/코드 쌍을 rev_code_table{}로 지정합니다. 오버라이드 [pa] = [pnb] = [pnb] = [punjabi] = [pnjabi] = [punjabi] = [punjabi]는 잡히지 않습니다."pa"와 "pnb"는 그렇지 않습니다. 동의어는 이름이 같기 때문에 동의어("pnb"는 "pa"로 승격")와 같이 취급됩니다.피하기 위해 오버라이드를 명확히 합니다.[ " pnb " ] = { " Punjabi " } -> [ " pnb " ] = { " Punjabi ( Western ) } ]] 위해서 태그, name_table 에 쌍들 (lang_table) 하다 한다면 것은 아니다. 오버라이드_테이블[태그] 그리고나서 -- 오버라이드 테이블에 태그가 존재하지 않는 경우에만 name_table에서 이름 또는 이름을 추가합니다. 현지의 name_raw = name_table:더 낮게(); 현지의 이름., 톡톡 두드리다 = name_raw:서브 ('%s+%b()', ''); -- 부모에 의한 불명확한 구분자 또는 수식자를 이름이 있는 이름에서 삭제합니다.해당 불명확한 부분을 삭제하면 <non-zero>가 됩니다. rev_list_add (rev_module_table, name_raw, 태그); -- 여기에 no-module-name 및 name-with-module을 추가합니다. dedabbed_names_list_add (톡톡 두드리다, 이름., 태그); -- dedabbed_names_list에 추가합니다(도브된 경우). 끝. 끝. dedabed_to_rev_list_add (rev_module_table, 이름., 태그); -- 역방향 테이블에 중복 제외된 이름/태그 쌍을 추가합니다. dedabed_names_list = {}; -- 중복 제외된 이름 목록을 재설정합니다. 위해서 태그, name_table 에 쌍들 (lang_dep_table) 하다 한다면 것은 아니다. 오버라이드_테이블[태그] 그리고나서 -- 오버라이드 테이블에 태그가 존재하지 않는 경우에만 name_table에서 이름 또는 이름을 추가합니다. 현지의 name_raw = name_table:더 낮게(); 현지의 이름., 톡톡 두드리다 = name_raw:서브 ('%s+%b()', ''); -- 부모에 의한 불명확한 구분자 또는 수식자를 이름이 있는 이름에서 삭제합니다.해당 불명확한 부분을 삭제하면 <non-zero>가 됩니다. rev_list_add (rev_dev_dep_table, name_raw, 태그); -- 여기에 no-module-name 및 name-with-module을 추가합니다. dedabbed_names_list_add (톡톡 두드리다, 이름., 태그); -- dedabbed_names_list에 추가합니다(도브된 경우). 끝. 끝. dedabed_to_rev_list_add (rev_dev_dep_table, 이름., 태그); -- 역방향 테이블에 중복 제외된 이름/태그 쌍을 추가합니다. dedabed_names_list = {}; -- 중복 제외된 이름 목록을 재설정합니다. 위해서 태그, name_table 에 쌍들 (오버라이드_테이블) 하다 현지의 name_raw = name_table:더 낮게(); 현지의 이름., 톡톡 두드리다 = name_raw:서브 ('%s+%b()', ''); -- 부모격의 모호성 또는 수식자를 가진 이름에서 삭제합니다. rev_list_add (rev_module_table, name_raw, 태그); dedabbed_names_list_add (톡톡 두드리다, 이름., 태그); -- dedabbed_names_list에 추가합니다(도브된 경우). 끝. dedabed_to_rev_list_add (rev_module_table, 이름., 태그); -- 역방향 테이블에 중복 제외된 이름/태그 쌍을 추가합니다. dedabed_names_list = {}; --목록 리셋 --[----------------------------------------------------------------------------------------------- ]] 돌아가다 { rev_module_table = rev_module_table, rev_dev_dep_table = rev_dev_dep_table, rev_module_table = rev_module_table, }