DKLang是本地化包。当没有翻译同一类的2种或更多种形式时,我有一个旧问题(其中只有1种翻译,其他形式是英文)。我是指动态创建的表单。
有人能解决这个问题吗? DKlang的作者一年没有回复。
EDIT 如何查看实际操作:演示项目(6KB RAR,仅限源代码)download here。 编译完成后,按主菜单 - 您将看到3个样本表单实例,第1个是本地化的,其他2个不是。需要非Unicode Delphi + TNT Unicode控件+ DKLang 3.x
答案 0 :(得分:0)
function TDKLang_CompTranslations.FindComponentName(sComponentName: String): TDKLang_CompTranslation;
var idx: Integer;
begin
idx := Pos('_', sComponentName); //added
if idx>0 then System.Delete(sComponentName, idx, MaxInt); //added
idx := IndexOfComponentName(sComponentName);
if idx<0 then Result := nil else Result := GetItems(idx);
end;
答案 1 :(得分:-1)
现在这是一个非常古老的问题,但是对于记录,我想给出正确的答案 DKLanguageController具有 SectionName 属性 在播放将动态实例化的表单或框架时,为SectionName提供一个值。对于所有者表单/框架的所有实例,此值将是通用的 所有翻译都将存储在以 SectionName 值命名的部分下,而不是表单/框架的名称。 这在文档中有明确说明,无需弄乱源代码。