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
-
概述
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