문제

나는 현지화 기능에서 내장 된 .NET을 사용하여 재생했으며 모두 RESX 파일에 데이터를 넣는 데 의존하는 것 같습니다.

그러나 대부분의 시스템은 데이터베이스 중심이기 때문에 이에 의존 할 수 없습니다. 그렇다면이 문제를 어떻게 해결합니까? .NET 방식이 내장되어 있습니까? 아니면 SQL로 변환 테이블을 만들고 수동으로 수행합니까? 그리고 대부분의 사이트 에서이 작업을 수행해야한다면 Resx 지역화 방식을 사용해야 할 이유가 있습니까?

예를 들어 사이트에 FAQ 목록이있는 것입니다. 데이터베이스 에이 목록을 유지하여 더 쉽게 추가/제거 할 수 있지만 데이터베이스에 넣으면이 정보를 여러 언어로 변환 한 방법이 없습니다. .

도움이 되었습니까?

해결책

내 생각에, 동적 컨텐츠 (예 : FAQ)는 데이터베이스에서 귀하가 수행해야합니다. 질문이 저장되는 방식에 따라 아마도 "로케일"열을 만들고 데이터베이스에서 FAQ 질문을 선택할 때이를 사용할 것입니다. 많은 테이블을 현지화하기 시작했을 때 이것이 확장 될지 확실하지 않습니다.

정적 컨텐츠 (예 : 필드 레이블, 정적 텍스트, 아이콘 등)의 경우 파일 기반 리소스를 사용하면 괜찮을 것입니다. 그러나 실제로 원한다면이를 처리 할 수있는 사용자 정의 리소스 제공 업체 구현을 만드는 것이 매우 어렵지 않은 것 같습니다.

몇 가지 관련 링크가 있습니다.

다른 팁

데이터 모델의 주어진 항목의 경우 Locale ID 열 (LCID)이있는 현지화 된 테이블로 설명 부분을 분할하십시오.

따라서 제품 테이블에는 실제로 제품 설명이나 이름이 포함되어 있지 않지만 단단하고 빠른 값 (ProductID, EAN, NumberInstock, NextStockData, Isactive, Ispublished) 등 만 포함됩니다.

ProductDescription에는 ProductId, Name, Description, LCID가 포함됩니다.

나는 캐나다에 살고 있으므로 다국어주의는 큰 문제입니다. 나는 두 가지 접근법을 보았다. 첫 번째 옵션은 특정 레코드에 대한 모든 현지화 된 데이터를 다른 테이블에 저장하는 것입니다. 기본 키와 로케일의 원본 테이블에 연결된 다른 테이블에 저장하는 것입니다. 두 번째 옵션은 첫 번째 옵션과 유사합니다. 각 로케일마다 다른 테이블이 있으며 로케일은 테이블 이름의 접미사로 사용됩니다.

옵션 a

Item (ItemID, ...)
ItemLocal (ItemID,LocaleID,....)

옵션 b

Item (ItemID, ...)
Item_ENUS (ItemID,....)
Item_ENGB (ItemID,....)
Item_FR (ItemID,....)

내가 최근에 생각했던 세 번째 옵션은 데이터베이스가 기본적으로 지원한다면 같은 필드에 모든 현지인의 값을 저장하는 것입니다. 그리고 필드가 Varchar-Multilocal로 설정된 경우 언어를 지정하기 위해 매개 변수를 전달하여 액세스해야합니다. 내가 아는 것처럼 이와 같은 것은 없지만, 실제로 물건을 훨씬 쉽게 만들고 훨씬 더 유동적이라고 생각하는 것입니다.

현재 번역은 자동으로 수행 할 수있는 것이 아닙니다. 가장 좋은 방법은 사람이 Nick의 방법을 번역하고 사용하여 적절한 언어를 보여줄 수 있도록하는 것입니다.

우리는 Kibbee의 응답의 Resx 파일과 옵션 A를 혼합합니다. 우리는 온라인으로 Resx 파일을 관리하는 간단한 도구를 만들었습니다.http://blog.lavablast.com/post/2008/02/resx-file-web-editor.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top