Replies: 1 comment
-
|
相关 API :#2341 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
概述
Monaco Editor Core (后续简称 monaco)是当前 OpenSumi 内使用的编辑器底层依赖,它提供了本地化的支持。目前,它的本地化API是通过导入
@opensumi/ide-monaco/lib/browser/monaco-localize来使用的。然而,这种方法的可维护性和易用性存在问题。由于 monaco 的加载时机为
import { ClientApp } from '@opensumi/ide-core-browser/lib/bootstrap/app';, 需要用户在加载前使用setLocale的方式明确语言类型,否则,在默认中文的影响下,用户的英文界面将不可避免的引入 “中文” 本地化内容,如下图所示:动机
当前的语言设置能力存在以下问题:
不易维护:使用
@opensumi/ide-monaco/lib/browser/monaco-localize导入本地化API不够直观,需要开发者熟悉框架本地化的内部实现。这使得在项目中使用 OpenSumi 时,维护困难。不易用:由于本地化API不够直观,使用起来也不够便捷。开发者往往需要同时进行两个语言设置,如通过
AppConfig.defaultPreferences设置默认的语言'general.language': 'zh-CN',, 同时仍需要通过 monaco 的 API 提前设置好语言类型。进一步的,如果结合了
registerExternalPreferenceProvider等配置注册逻辑,整体的配置项将是比较混乱的。因此,建议改进框架当前的本地化 API 能力。
建议
建议通过以下方式改进本地化的API:
提供文档和示例:我们建议提供更丰富的文档和示例,以便开发者更容易地学习和使用本地化 API。这将减少开发者在使用本地化 API 时的困惑,并提高其使用体验。
提供一个更直观的API接口:我们建议提供一个更直观的API接口,以方便开发者使用本地化API。例如,将 monaco的加载时机后置于 与 ClientApp 创建之后,通过框架自身配置项能力去支持 monaco 的本地化,后续仅需要在默认配置项中声明 “语言” 配置即可,如:
讨论
欢迎任何关于该提议的讨论和反馈。
参考资料
Beta Was this translation helpful? Give feedback.
All reactions