{"id":28153247,"url":"https://github.com/giantappman/multilanguageforxaml","last_synced_at":"2025-05-15T05:13:34.181Z","repository":{"id":41081508,"uuid":"142976284","full_name":"GiantappMan/MultiLanguageForXAML","owner":"GiantappMan","description":"Support WPF multi-language switching with JSON files  |  用JSON文件支持WPF多语言切换","archived":false,"fork":false,"pushed_at":"2024-01-12T02:00:41.000Z","size":1521,"stargazers_count":29,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-27T00:42:48.483Z","etag":null,"topics":["i18n","multi-language","multi-language-support","multilingual","wpf","xaml"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GiantappMan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-07-31T07:09:23.000Z","updated_at":"2024-01-05T03:35:39.000Z","dependencies_parsed_at":"2024-01-12T06:30:30.403Z","dependency_job_id":null,"html_url":"https://github.com/GiantappMan/MultiLanguageForXAML","commit_stats":{"total_commits":87,"total_committers":1,"mean_commits":87.0,"dds":0.0,"last_synced_commit":"65398a0378126732971b6eee803c48b3e824f56b"},"previous_names":["giantappman/multilanguageforxaml","daziyuan/multilanguageforxaml"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiantappMan%2FMultiLanguageForXAML","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiantappMan%2FMultiLanguageForXAML/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiantappMan%2FMultiLanguageForXAML/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GiantappMan%2FMultiLanguageForXAML/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GiantappMan","download_url":"https://codeload.github.com/GiantappMan/MultiLanguageForXAML/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276422,"owners_count":22043869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["i18n","multi-language","multi-language-support","multilingual","wpf","xaml"],"created_at":"2025-05-15T05:13:32.891Z","updated_at":"2025-05-15T05:13:34.175Z","avatar_url":"https://github.com/GiantappMan.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MultiLanguageForXAML\n\n针对 WPF 的多语言支持库\n\n## [Nuget](https://www.nuget.org/packages/MultiLanguageForXAML/)\n\n## 效果预览\n\n- **WPF**\n\n![steup](https://raw.githubusercontent.com/DaZiYuan/MultiLanguageForXAML/master/screenshots/WPF.gif)\n\n## 用法\n\n- **定义语言文件**\n\n```\n//Languages/zh.json 编译时拷贝到目录\n    {\n    \"txt\": \"一\",\n    \"format\":\"你好 {0} !\",\n    \"world\":\"世界\"\n    }\n\n//Languages/en.json 编译时拷贝到目录\n    {\n    \"txt\": \"one\",\n    \"format\":\"hello {0} !\",\n    \"world\":\"world\"\n    }\n\n```\n\n- **初始化**\n\n```csharp\n//WPF\n//怀疑用Environment.CurrentDirectory开机启动时目录会出错，待验证\nstring appDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);\nstring path = Path.Combine(appDir, \"Res\\\\Languages\");\nLanService.Init(new JsonFileDB(path), true,\"zh\");\n//嵌入模式\n//LanService.Init(new EmbeddedJsonDB(\"Samples.WPF.EmbeddedConfig.Languages\"), true, \"en\");\n```\n\n- **XAML**\n\n```XAML\n\n\u003cWindow\n    ...\n    xmlns:lan=\"clr-namespace:MultiLanguageForXAML;assembly=MultiLanguageForXAML\"\u003e\n    \u003cStackPanel\u003e\n        \u003cButton lan:Xaml.Key=\"txt\" /\u003e\n        \u003cButton lan:Xaml.Key=\"format\"\u003e\n            \u003clan:Xaml.Parameters\u003e\n                \u003clan:FormatParameters\u003e\n                    \u003cRun\n                        lan:Xaml.Key=\"world\"\n                        FontStyle=\"Italic\"\n                        Foreground=\"Red\" /\u003e\n                \u003c/lan:FormatParameters\u003e\n            \u003c/lan:Xaml.Parameters\u003e\n        \u003c/Button\u003e\n    \u003c/StackPanel\u003e\n\u003c/Window/\u003e\n\n```\n\n- **切换语言**\n\n```csharp\n//WPF\nLanService.UpdateCulture(\"en\");\n```\n\n- **自定义控件映射（可选）**\n\n```csharp\nXaml.CustomMaps.Add(typeof(CustomTitleBar), CustomTitleBar.TitleProperty);\n\n```\n\n## 广而告之\n\n[应用推荐]([https://giantapp.cn/categories/products](https://www.mscoder.cn/projects)https://www.mscoder.cn/projects)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiantappman%2Fmultilanguageforxaml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiantappman%2Fmultilanguageforxaml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiantappman%2Fmultilanguageforxaml/lists"}