一切始于《官方语言法》。
我们是一个加拿大 BI 团队,受加拿大双语发布要求约束。每一份报表、每一个仪表板、每一个度量值标签都必须以英语和法语交付。双语并非锦上添花,而是法律义务。
我们花了数月寻找合适的方案。
开源工具、付费扩展、自定义脚本。我们全都试过。在我们的规模下没有一个撑得住:一个大团队、快速的周转、多名分析师同时编辑同一份报表。
我们不想要两份报表。
显而易见的变通办法,即为每份英文报表维护一份法文副本,一夜之间让维护负担翻倍。每一次视觉对象的改动、每一个新度量值、每一处 KPI 调整都要做两遍。我们否决了它。
我们也不想要手动流程。
用一张共享电子表格来跟踪报表翻译,在每次部署前手动合并。对一个大团队来说,这是一个注定会出错的流程。我们也否决了它。
于是只剩下一个糟糕的选项。
把两种语言拼接进报表上的每一段文本。每一个标题都变成一长串 “Sales | Ventes”。难看,但说得过去。
而且微软没有可靠的工具。
Power BI 自带了融入 Tabular Object Model 的区域性和翻译表。管道是现成的。但微软的原生工具止步于 “你可以把数据放进这些表里”,把如何大规模地编辑、验证和交付翻译留给各团队自己摸索。我们等了又等。它没有来。
于是我们打造了 Daxlate。
一款直接与模型对话的桌面应用。一个把每种区域性并排显示的网格。为不常用 Power BI Desktop 的翻译人员准备的 Excel 往返。含数据模型的 PBIX 文件在保存时绝不会被覆盖,因此一次粗心的写入不会毁掉一个季度的本地化工作。没有任何东西离开本机。
我们现在的进展。
Daxlate 现已覆盖 Power BI 报表的两个层面。在语义模型一侧:区域性、标题、描述和层次结构。在报表画布本身:视觉对象标题、页眉、按钮和文本框,因此读者看到的文本也会切换语言,而不只是底层的数据模型。
完整愿景中还剩一块有待构建:
- 面向 CI/CD 流水线的一流 CLI。
我们会做到的。