Skip to content

语言相关属性

概述

本节介绍软航OFFICE文档控件国产化版本语言相关属性,这些属性允许开发者控制文档控件的显示语言,为多语言文档管理系统提供完整的语言控制能力。

语言控制属性

UILangCode

说明:
String型字符串;可读写;读取/设置文档控件显示语言。

语法:

javascript
// 设置
Obj.UILangCode = {enu|cht|chs};

// 读取
varObj = Obj.UILangCode;

语言代码说明:

代码语言说明
enu英文English
cht中文繁体繁體中文
chs中文简体简体中文

注意: 此属性仅多语言版本才有效。

使用示例:

javascript
// 基本用法
var obj = OfficeControlObj;

// 设置为英文
obj.UILangCode = "enu";
console.log("界面语言已设置为英文");

// 设置为中文繁体
obj.UILangCode = "cht";
console.log("界面语言已设置为中文繁体");

// 设置为中文简体
obj.UILangCode = "chs";
console.log("界面语言已设置为中文简体");

// 读取当前语言设置
var currentLang = obj.UILangCode;
console.log("当前界面语言:", currentLang);

// 根据语言设置执行不同操作
switch(currentLang) {
    case "enu":
        console.log("English interface");
        // 执行英文界面相关操作
        setEnglishInterface();
        break;
    case "cht":
        console.log("繁體中文界面");
        // 执行繁体中文界面相关操作
        setTraditionalChineseInterface();
        break;
    case "chs":
        console.log("简体中文界面");
        // 执行简体中文界面相关操作
        setSimplifiedChineseInterface();
        break;
    default:
        console.log("未知语言设置");
}

语言管理功能

动态语言切换

javascript
// 动态语言切换功能
function dynamicLanguageSwitch() {
    var obj = OfficeControlObj;
    
    // 语言切换配置
    var languageConfig = {
        supportedLanguages: ["enu", "cht", "chs"],
        defaultLanguage: "chs",
        currentLanguage: obj.UILangCode
    };
    
    // 切换语言
    function switchLanguage(langCode) {
        try {
            // 验证语言代码
            if (languageConfig.supportedLanguages.indexOf(langCode) === -1) {
                console.error("不支持的语言代码:", langCode);
                return false;
            }
            
            // 设置语言
            obj.UILangCode = langCode;
            languageConfig.currentLanguage = langCode;
            
            console.log("语言已切换为:", langCode);
            
            // 触发语言切换事件
            onLanguageChanged(langCode);
            
            return true;
        } catch (error) {
            console.error("语言切换失败:", error);
            return false;
        }
    }
    
    // 语言切换事件处理
    function onLanguageChanged(langCode) {
        console.log("语言切换事件触发:", langCode);
        
        // 根据语言执行不同操作
        switch(langCode) {
            case "enu":
                updateEnglishInterface();
                break;
            case "cht":
                updateTraditionalChineseInterface();
                break;
            case "chs":
                updateSimplifiedChineseInterface();
                break;
        }
    }
    
    // 更新英文界面
    function updateEnglishInterface() {
        console.log("更新英文界面");
        // 执行英文界面更新操作
    }
    
    // 更新繁体中文界面
    function updateTraditionalChineseInterface() {
        console.log("更新繁体中文界面");
        // 执行繁体中文界面更新操作
    }
    
    // 更新简体中文界面
    function updateSimplifiedChineseInterface() {
        console.log("更新简体中文界面");
        // 执行简体中文界面更新操作
    }
    
    return {
        switchLanguage: switchLanguage,
        onLanguageChanged: onLanguageChanged
    };
}

语言检测和自动设置

javascript
// 语言检测和自动设置功能
function languageDetectionAndAutoSetting() {
    var obj = OfficeControlObj;
    
    // 检测系统语言
    function detectSystemLanguage() {
        var systemLang = navigator.language || navigator.userLanguage;
        console.log("系统语言:", systemLang);
        
        // 根据系统语言返回对应的语言代码
        if (systemLang.startsWith("zh-TW") || systemLang.startsWith("zh-HK")) {
            return "cht"; // 繁体中文
        } else if (systemLang.startsWith("zh-CN") || systemLang.startsWith("zh")) {
            return "chs"; // 简体中文
        } else {
            return "enu"; // 英文
        }
    }
    
    // 自动设置语言
    function autoSetLanguage() {
        try {
            var detectedLang = detectSystemLanguage();
            console.log("检测到的语言:", detectedLang);
            
            // 设置语言
            obj.UILangCode = detectedLang;
            console.log("语言已自动设置为:", detectedLang);
            
            return detectedLang;
        } catch (error) {
            console.error("自动设置语言失败:", error);
            return null;
        }
    }
    
    // 手动设置语言
    function manualSetLanguage(langCode) {
        try {
            obj.UILangCode = langCode;
            console.log("语言已手动设置为:", langCode);
            return true;
        } catch (error) {
            console.error("手动设置语言失败:", error);
            return false;
        }
    }
    
    return {
        detectSystemLanguage: detectSystemLanguage,
        autoSetLanguage: autoSetLanguage,
        manualSetLanguage: manualSetLanguage
    };
}

语言相关工具函数

语言代码验证

javascript
// 语言代码验证工具
function languageCodeValidator() {
    // 支持的语言代码列表
    var supportedLanguages = ["enu", "cht", "chs"];
    
    // 验证语言代码
    function validateLanguageCode(langCode) {
        if (!langCode || typeof langCode !== "string") {
            return false;
        }
        
        return supportedLanguages.indexOf(langCode) !== -1;
    }
    
    // 获取语言名称
    function getLanguageName(langCode) {
        var languageNames = {
            "enu": "English",
            "cht": "繁體中文",
            "chs": "简体中文"
        };
        
        return languageNames[langCode] || "未知语言";
    }
    
    // 获取语言代码列表
    function getSupportedLanguageCodes() {
        return supportedLanguages;
    }
    
    return {
        validateLanguageCode: validateLanguageCode,
        getLanguageName: getLanguageName,
        getSupportedLanguageCodes: getSupportedLanguageCodes
    };
}

语言设置持久化

javascript
// 语言设置持久化功能
function languageSettingsPersistence() {
    var obj = OfficeControlObj;
    var storageKey = "ntko_ui_language";
    
    // 保存语言设置
    function saveLanguageSetting(langCode) {
        try {
            localStorage.setItem(storageKey, langCode);
            console.log("语言设置已保存:", langCode);
            return true;
        } catch (error) {
            console.error("保存语言设置失败:", error);
            return false;
        }
    }
    
    // 加载语言设置
    function loadLanguageSetting() {
        try {
            var savedLang = localStorage.getItem(storageKey);
            if (savedLang && validateLanguageCode(savedLang)) {
                obj.UILangCode = savedLang;
                console.log("语言设置已加载:", savedLang);
                return savedLang;
            } else {
                console.log("没有保存的语言设置,使用默认语言");
                return null;
            }
        } catch (error) {
            console.error("加载语言设置失败:", error);
            return null;
        }
    }
    
    // 清除语言设置
    function clearLanguageSetting() {
        try {
            localStorage.removeItem(storageKey);
            console.log("语言设置已清除");
            return true;
        } catch (error) {
            console.error("清除语言设置失败:", error);
            return false;
        }
    }
    
    return {
        saveLanguageSetting: saveLanguageSetting,
        loadLanguageSetting: loadLanguageSetting,
        clearLanguageSetting: clearLanguageSetting
    };
}

使用流程

1. 基本语言管理流程

javascript
// 基本语言管理流程
function basicLanguageManagement() {
    var obj = OfficeControlObj;
    
    // 设置语言
    function setLanguage(langCode) {
        obj.UILangCode = langCode;
        console.log("语言已设置为:", langCode);
    }
    
    // 获取当前语言
    function getCurrentLanguage() {
        var currentLang = obj.UILangCode;
        console.log("当前语言:", currentLang);
        return currentLang;
    }
    
    // 检查语言支持
    function checkLanguageSupport(langCode) {
        var supportedLanguages = ["enu", "cht", "chs"];
        return supportedLanguages.indexOf(langCode) !== -1;
    }
    
    return {
        setLanguage: setLanguage,
        getCurrentLanguage: getCurrentLanguage,
        checkLanguageSupport: checkLanguageSupport
    };
}

2. 高级语言管理流程

javascript
// 高级语言管理流程
function advancedLanguageManagement() {
    var obj = OfficeControlObj;
    
    // 语言管理配置
    var languageConfig = {
        enableAutoDetection: true,
        enablePersistence: true,
        enableValidation: true,
        enableErrorHandling: true
    };
    
    // 应用语言管理配置
    function applyLanguageConfig() {
        try {
            if (languageConfig.enableAutoDetection) {
                console.log("语言自动检测已启用");
            }
            
            if (languageConfig.enablePersistence) {
                console.log("语言设置持久化已启用");
            }
            
            if (languageConfig.enableValidation) {
                console.log("语言验证已启用");
            }
            
            console.log("语言管理配置应用成功");
        } catch (error) {
            console.error("语言管理配置应用失败:", error);
        }
    }
    
    // 监控语言状态
    function monitorLanguageStatus() {
        var status = {
            currentLanguage: obj.UILangCode,
            supportedLanguages: ["enu", "cht", "chs"],
            isLanguageValid: validateLanguageCode(obj.UILangCode)
        };
        
        console.log("语言状态监控:", status);
        return status;
    }
    
    return {
        applyLanguageConfig: applyLanguageConfig,
        monitorLanguageStatus: monitorLanguageStatus
    };
}

3. 语言质量控制流程

javascript
// 语言质量控制流程
function languageQualityControl() {
    var obj = OfficeControlObj;
    
    // 语言质量控制
    function controlLanguageQuality() {
        var languageQuality = {
            currentLanguage: obj.UILangCode,
            isLanguageValid: false,
            isLanguageSupported: false,
            qualityScore: 0
        };
        
        // 验证语言代码
        var supportedLanguages = ["enu", "cht", "chs"];
        languageQuality.isLanguageSupported = supportedLanguages.indexOf(languageQuality.currentLanguage) !== -1;
        languageQuality.isLanguageValid = languageQuality.currentLanguage && languageQuality.currentLanguage.trim() !== "";
        
        // 计算质量分数
        if (languageQuality.isLanguageValid && languageQuality.isLanguageSupported) {
            languageQuality.qualityScore = 100;
        } else if (languageQuality.isLanguageValid) {
            languageQuality.qualityScore = 50;
        } else {
            languageQuality.qualityScore = 0;
        }
        
        console.log("语言质量控制:", languageQuality);
        return languageQuality;
    }
    
    // 执行质量控制
    var qualityResult = controlLanguageQuality();
    console.log("语言质量控制结果:", qualityResult);
}

完整示例

1. 基础语言管理

javascript
// 基础语言管理示例
function basicLanguageManagement() {
    var obj = OfficeControlObj;
    
    // 设置语言
    function setLanguage(langCode) {
        obj.UILangCode = langCode;
        console.log("语言已设置为:", langCode);
    }
    
    // 获取当前语言
    function getCurrentLanguage() {
        var currentLang = obj.UILangCode;
        console.log("当前语言:", currentLang);
        return currentLang;
    }
    
    return {
        setLanguage: setLanguage,
        getCurrentLanguage: getCurrentLanguage
    };
}

2. 高级语言管理

javascript
// 高级语言管理示例
function advancedLanguageManagement() {
    var obj = OfficeControlObj;
    
    // 语言管理配置
    var languageConfig = {
        enableAutoDetection: true,
        enablePersistence: true,
        enableValidation: true,
        enableErrorHandling: true
    };
    
    // 应用语言管理配置
    function applyLanguageConfig() {
        if (languageConfig.enableAutoDetection) {
            console.log("语言自动检测已启用");
        }
        
        if (languageConfig.enablePersistence) {
            console.log("语言设置持久化已启用");
        }
        
        console.log("语言管理配置应用完成");
    }
    
    // 监控语言状态
    function monitorLanguageStatus() {
        var status = {
            currentLanguage: obj.UILangCode,
            supportedLanguages: ["enu", "cht", "chs"],
            isLanguageValid: validateLanguageCode(obj.UILangCode)
        };
        
        console.log("语言状态:", status);
        return status;
    }
    
    return {
        applyLanguageConfig: applyLanguageConfig,
        monitorLanguageStatus: monitorLanguageStatus
    };
}

3. 语言质量控制

javascript
// 语言质量控制示例
function languageQualityControl() {
    var obj = OfficeControlObj;
    
    // 语言质量控制
    function controlLanguageQuality() {
        var languageQuality = {
            currentLanguage: obj.UILangCode,
            isLanguageValid: false,
            isLanguageSupported: false,
            qualityScore: 0
        };
        
        // 验证语言代码
        var supportedLanguages = ["enu", "cht", "chs"];
        languageQuality.isLanguageSupported = supportedLanguages.indexOf(languageQuality.currentLanguage) !== -1;
        languageQuality.isLanguageValid = languageQuality.currentLanguage && languageQuality.currentLanguage.trim() !== "";
        
        // 计算质量分数
        if (languageQuality.isLanguageValid && languageQuality.isLanguageSupported) {
            languageQuality.qualityScore = 100;
        } else if (languageQuality.isLanguageValid) {
            languageQuality.qualityScore = 50;
        } else {
            languageQuality.qualityScore = 0;
        }
        
        console.log("语言质量控制:", languageQuality);
        return languageQuality;
    }
    
    // 执行质量控制
    var qualityResult = controlLanguageQuality();
    console.log("语言质量控制结果:", qualityResult);
}

注意事项

  1. 多语言版本:此属性仅多语言版本才有效
  2. 语言代码:确保使用正确的语言代码(enu、cht、chs)
  3. 错误处理:实现完善的错误处理机制
  4. 性能考虑:避免频繁切换语言
  5. 资源管理:及时清理不需要的资源
  6. 状态同步:保持语言状态的一致性
  7. 用户体验:确保语言切换不影响用户体验

错误处理

javascript
// 语言属性错误处理
function handleLanguagePropertyError(operationType, error) {
    console.error("语言属性处理失败:", operationType, error.message);
    
    switch(operationType) {
        case 'UILangCode':
            console.log("语言设置失败,请检查:");
            console.log("1. 是否使用多语言版本");
            console.log("2. 语言代码是否正确");
            console.log("3. 语言代码是否支持");
            break;
        case 'LanguageSwitch':
            console.log("语言切换失败,请检查:");
            console.log("1. 目标语言是否支持");
            console.log("2. 语言代码是否有效");
            console.log("3. 控件状态是否正常");
            break;
        default:
            console.log("未知语言属性处理失败");
    }
}

最佳实践

1. 语言管理最佳实践

javascript
// 语言管理最佳实践
function languageManagementBestPractice() {
    // 语言管理配置
    var languageConfig = {
        enableLogging: true,
        enableValidation: true,
        enableErrorHandling: true,
        enableQualityControl: true
    };
    
    // 应用语言管理配置
    function applyLanguageConfig() {
        try {
            // 设置语言管理处理
            if (languageConfig.enableLogging) {
                console.log("语言管理日志已启用");
            }
            
            if (languageConfig.enableValidation) {
                console.log("语言验证已启用");
            }
            
            console.log("语言管理配置应用成功");
        } catch (error) {
            handleLanguagePropertyError('applyLanguageConfig', error);
        }
    }
    
    // 应用配置
    applyLanguageConfig();
}

2. 语言质量控制最佳实践

javascript
// 语言质量控制最佳实践
function languageQualityControlBestPractice() {
    // 语言质量控制
    function controlLanguageQuality() {
        try {
            // 语言质量控制
            var languageQuality = {
                currentLanguage: obj.UILangCode,
                isLanguageValid: false,
                isLanguageSupported: false,
                qualityScore: 0
            };
            
            // 计算质量分数
            if (languageQuality.isLanguageValid && languageQuality.isLanguageSupported) {
                languageQuality.qualityScore = 100;
            }
            
            console.log("语言质量控制完成:", languageQuality);
            return languageQuality;
        } catch (error) {
            console.error("语言质量控制失败:", error.message);
            return null;
        }
    }
    
    // 执行质量控制
    var qualityResult = controlLanguageQuality();
    console.log("语言质量控制结果:", qualityResult);
}

技术要点

  1. 多语言版本:此属性仅多语言版本才有效
  2. 语言代码:确保使用正确的语言代码(enu、cht、chs)
  3. 错误处理:完善的错误处理机制
  4. 性能优化:避免频繁切换语言
  5. 资源管理:及时清理不需要的资源
  6. 状态同步:保持语言状态的一致性
  7. 用户体验:确保语言切换不影响用户体验