当前位置: 首页 > wzjs >正文

专业做网站多少钱卖东西的网站怎么做

专业做网站多少钱,卖东西的网站怎么做,wordpress ajax 提交,微信互动营销网站建设💬 C 项目中的多语言字符串管理方案(支持自动提示与动态加载) 在中大型 C 应用中,我们常常会面临界面提示文本繁多、需要支持多语言切换的问题。为了解决字符串管理混乱、缺乏自动提示、难以维护等问题,本文将提供一种…

💬 C++ 项目中的多语言字符串管理方案(支持自动提示与动态加载)

在中大型 C++ 应用中,我们常常会面临界面提示文本繁多、需要支持多语言切换的问题。为了解决字符串管理混乱、缺乏自动提示、难以维护等问题,本文将提供一种 高效、类型安全、支持 IDE 自动补全可动态加载 JSON 翻译文件 的方案。


✅ 常见做法与问题

❌ 写死字符串(不可维护)

std::wcout << L"选择文件" << std::endl;
  • 🚫 不可复用,无法统一管理
  • 🚫 不支持多语言
  • 🚫 拼写易错,难以查找

❌ 字符串字典(无自动提示)

UIStrings::Get("ChooseFile");
  • ✅ 支持动态语言切换
  • 🚫 Key 是字符串,IDE 无法补全、编译器无法校验
  • 🚫 Key 拼写错误只能运行时报错

✅ 推荐方案:枚举 UIKey + 字符串映射 + JSON 多语言加载

这种方式结合了 静态类型的安全性动态加载的灵活性,核心点如下:

📌 UIKey 枚举:自动提示 + 编译期检查

enum class UIKey {ChooseFile,SupportedFiles,SaveSuccess,// ...
};

📌 UIStrings 类:统一访问接口

class UIStrings {
public:static bool LoadLanguage(const std::string& lang);        // 加载 JSON 文件static const std::wstring& Get(UIKey key);                // 获取翻译文本
};

使用示例:

UIStrings::LoadLanguage("zh");
std::wcout << UIStrings::Get(UIKey::ChooseFile);

UIKey::ChooseFile 支持 IDE 自动补全
✅ 拼错时编译器报错


📁 JSON 多语言翻译文件格式(如 locales/zh.json

{"ChooseFile": "选择文件","SupportedFiles": "仅支持 PNG, JPG, JPEG, PDF 文件","SaveSuccess": "保存成功"
}

🛠 自动生成 UIKey.hUIKeyToString()(Python 脚本)

为了避免手动同步 JSON 和 C++ 枚举,我们提供一个自动生成脚本:

generate_keys.py

import json, sysjson_path = sys.argv[1]
output_dir = sys.argv[2]with open(json_path, encoding="utf-8") as f:keys = json.load(f).keys()with open(f"{output_dir}/UIKey.h", "w", encoding="utf-8") as h:h.write("#pragma once\n\nenum class UIKey {\n")for k in keys:h.write(f"    {k},\n")h.write("};\n")with open(f"{output_dir}/UIStrings_KeyMap.cpp", "w", encoding="utf-8") as cpp:cpp.write('#include "UIKey.h"\n#include <string>\n\n')cpp.write("std::string UIKeyToString(UIKey key) {\n    switch (key) {\n")for k in keys:cpp.write(f'        case UIKey::{k}: return "{k}";\n')cpp.write('        default: return "";\n    }\n}\n')

⚙ CMake 集成自动生成步骤

CMakeLists.txt 中加入如下配置,构建时自动生成头文件和映射函数:

find_package(Python3 REQUIRED)set(LOCALE_JSON ${CMAKE_SOURCE_DIR}/locales/zh.json)
set(GENERATE_SCRIPT ${CMAKE_SOURCE_DIR}/generate_keys.py)
set(GENERATED_DIR ${CMAKE_BINARY_DIR}/generated)add_custom_command(OUTPUT ${GENERATED_DIR}/UIKey.h ${GENERATED_DIR}/UIStrings_KeyMap.cppCOMMAND ${Python3_EXECUTABLE} ${GENERATE_SCRIPT} ${LOCALE_JSON} ${GENERATED_DIR}DEPENDS ${LOCALE_JSON} ${GENERATE_SCRIPT}
)add_custom_target(generate_keys ALLDEPENDS ${GENERATED_DIR}/UIKey.h ${GENERATED_DIR}/UIStrings_KeyMap.cpp
)include_directories(${GENERATED_DIR})add_executable(MyAppsrc/main.cppsrc/UIStrings.cpp${GENERATED_DIR}/UIKey.h${GENERATED_DIR}/UIStrings_KeyMap.cpp
)add_dependencies(MyApp generate_keys)

🧠 优势总结

特性说明
✅ 自动提示使用 UIKey::XXX 支持 IDE 补全
✅ 编译期检查Key 拼错编译时报错
✅ JSON 动态加载支持多语言切换,无需重新编译
✅ 自动生成脚本支持无需手动维护 Key 列表
✅ 易于维护和团队协作清晰的结构,适合多人开发

🧩 示例调用

std::wcout << UIStrings::Get(UIKey::ChooseFile);  // 输出:选择文件

📌 小结

这种方式可以在不牺牲类型安全与开发体验的前提下实现灵活的多语言支持,是 C++ 项目中管理 UI 字符串的推荐方式。


文章转载自:

http://fU3X2neC.jqwpw.cn
http://6gcum3f6.jqwpw.cn
http://LXDkL0Qn.jqwpw.cn
http://HheaKf7m.jqwpw.cn
http://l5QafYeF.jqwpw.cn
http://8np0xOlq.jqwpw.cn
http://nneDJEMt.jqwpw.cn
http://9JanCx9W.jqwpw.cn
http://dIry54u3.jqwpw.cn
http://QWOnatZ0.jqwpw.cn
http://Fv1w5VeF.jqwpw.cn
http://yMzPBq8u.jqwpw.cn
http://z9TSY924.jqwpw.cn
http://yqu2S0wZ.jqwpw.cn
http://s1RAP9oz.jqwpw.cn
http://BF8da6C8.jqwpw.cn
http://O8JqCyyz.jqwpw.cn
http://5oDGrbyw.jqwpw.cn
http://KLnd5gWM.jqwpw.cn
http://7zWQunex.jqwpw.cn
http://9AMRQcvY.jqwpw.cn
http://xeXoBowh.jqwpw.cn
http://yvgYbNCf.jqwpw.cn
http://Aq5gGqoV.jqwpw.cn
http://qDuOw9sk.jqwpw.cn
http://Dah8roqH.jqwpw.cn
http://NTMtLhGB.jqwpw.cn
http://4yWspv7C.jqwpw.cn
http://gu0WqBkf.jqwpw.cn
http://fz2yPmLb.jqwpw.cn
http://www.dtcms.com/wzjs/778770.html

相关文章:

  • 软件公司网站素材wordpress ip设置
  • 网站建设实验分析上海装修公司排名榜
  • 大连庄河网站建设平顶山网站建设费用
  • android 移动网站开发网页制作基础教程视频教程 葛艳玲
  • 基层建设被哪些网站全文收录查域名解析ip
  • 网站建设推广谷得网络免费建站网站一级大录像不卡在线看网页
  • 宜昌做网站哪家最便宜wordpress自带jquery
  • 大连住建部官方网站如何做音乐分享类网站
  • 做网站的模仿还要去量宽高吗初中毕业学网站开发工程师
  • 医院网站建设报价做商城外贸网站
  • 做盗版小说网站赚钱嘛做封面电脑网站
  • 吉安做网站公司番禺网站制作价格
  • 网站建设计划书怎么写城乡建设部网站混凝土7天强度
  • 社交类网站开发需求分析惠东做网站报价
  • 局域网网站开发只做动漫的h网站
  • 医院网站竹子建站免费版
  • 成都网站的优化腾讯云可以做网站
  • 江苏大丰做网站西安网站制作哪家便宜又好
  • 做网站推广怎么说广告词关键词排名查询工具免费
  • 福州营销型网站建设企业网站建设北京公司排名
  • p2p网站制作 杭州怎样做服务型网站
  • 可以注册的网站互联网公司排名前1000个
  • 域名解析后网站怎么建设软件开发全流程
  • 做电子商务网站公司wordpress淘客主题
  • 宁波专业网站营销社区门户网站建设
  • 淘宝客网站如何做黑wordpress网站
  • 公司网站维护与更新上海最大企业前十名
  • 怎样建立一个自己的网站免费要网站开发费用短信
  • 怀柔网站整站优化公司网站开发总结800字
  • 黄岩做网站公司电话软件开发工具case