https://github.com/ng-alain/delon/blob/master/packages/theme/src/services/i18n/i18n.ts

  • interface AlainI18NService
  • abstract class AlainI18nBaseService implements AlainI18NService
  • class AlainI18NServiceFake

支持占位符的定制,默认使用 {{ }},可以通过 AlainConfigService 的 interpolation 进行定制。使用了其中的 'themeI18n' 部分的定义

提供了一个 flatData() 可以将层次嵌套的结构平铺为单层的对象结构。

/**
* Flattened data source
*
* @example
* {
* "name": "Name",
* "sys": {
* "": "System",
* "title": "Title"
* }
* }
* =>
* {
* "name": "Name",
* "sys": "System",
* "sys.title": "Title"
* }
*/
flatData(data: Record<string, unknown>, parentKey: string[]): Record<string, string> {
const res: Record<string, string> = {};
for (const key of Object.keys(data)) {
const value = data[key];
if (typeof value === 'object') {
const child = this.flatData(value as Record<string, unknown>, parentKey.concat(key));
Object.keys(child).forEach(childKey => (res[childKey] = child[childKey]));
} else {
res[(key ? parentKey.concat(key) : parentKey).join('.')] = `${value}`;
}
}
return res;
}

ng-alain: i18n的更多相关文章

  1. Ng Alain使用 - cli和克隆两种方式

    感觉没啥要写的,但是在查看相关资料的过程中发现不少浮夸的人,可以说是完全不阅读官方文档,操作完全无厘头,,创建了删,配置,再删除,,,扯蛋....., 方式一:CLI(推荐) # 确保使用的是最新版本 ...

  2. Angular 中后台前端解决方案 - Ng Alain 介绍

    背景 之前项目使用过vue.js+iview,习惯了后端开发的我,总觉得使用不习惯,之前分析易企秀前端代码,接触到了angular js,完备的相关功能,类似后端开发的体验,让人耳目一新,全新的ang ...

  3. .Net Core应用框架Util介绍(二)

    Util的开源地址 https://github.com/dotnetcore/util Util的开源协议 Util以MIT协议开源,这是目前最宽松的开源协议,你不仅可以用于商业项目,还能把Util ...

  4. 如何用ABP框架快速完成项目(6) - 用ABP一个人快速完成项目(2) - 使用多个成熟控件框架

    正如我在<office365的开发者训练营,免费,在微软广州举办>课程里面所讲的, 站在巨人的肩膀上的其中一项就是, 尽量使用别人成熟的框架. 其中也包括了控件框架   abp和52abp ...

  5. 基于spring security 实现前后端分离项目权限控制

    前后端分离的项目,前端有菜单(menu),后端有API(backendApi),一个menu对应的页面有N个API接口来支持,本文介绍如何基于spring security实现前后端的同步权限控制. ...

  6. .Net Core应用框架Util介绍(二) 转

    Util的开源地址 https://github.com/dotnetcore/util Util的开源协议 Util以MIT协议开源,这是目前最宽松的开源协议,你不仅可以用于商业项目,还能把Util ...

  7. Angular 学习笔记 (Angular 9 & ivy)

    refer : https://blog.angularindepth.com/all-you-need-to-know-about-ivy-the-new-angular-engine-9cde47 ...

  8. angular2 学习笔记 ( translate, i18n 翻译 )

    更新 : 2017-06-17 <h1 i18n="site header|An introduction header for this sample">Hello ...

  9. AngularJs学习笔记--I18n/L10n

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/i18n 一.I18n and L10n in AngularJS 1. 什么是I18n和L10n? 国 ...

  10. [Angular] Introduction to Angular Internationalization (i18n)

    To add translation to the application: <button (click)="onEditCourse()" i18n>Edit bu ...

随机推荐

  1. 《赵渝强》《Docker+Kubernetes容器实战派》新书上市!!!

    用一本书掌握Docker与Kubernetes核心内容!!! 本书基于作者多年的教学与实践经验编写,分为上下两篇,共20章. 上篇(第1-11章)介绍Docoker,包含:Docker入门.Docke ...

  2. USB总线-Linux内核USB设备驱动之UAC2驱动分析(十)

    1.概述 UVC(USB Audio Class)定义了使用USB协议播放或采集音频数据的设备应当遵循的规范.目前,UAC协议有UAC1.0和UAC2.0. UAC2.0协议相比UAC1.0协议,提供 ...

  3. USB编码方式(NRZI)及时钟同步方式

    1.概述 在同步通讯系统中,两个设备通讯则需要同步信号,同步信号分为时钟同步信号和自同步信号两种,时钟同步方式在通讯链路上具有时钟信号(IIC.SPI),自同步方式在通讯链路中没有同步信号(PCIE. ...

  4. 通过脚手架 npx 创建 react 项目

    npx create-react-app create-react --template typescript 使用 ts 模板

  5. 记录EntityFramework增删改产生的SQL语句

    项目里遇到一个数据交换的需求,申报端和审批端的系统和数据库都不在同一个网段:甲方提供一个msmq队列:我们把申报和审批产生的变化数据用sql记录到xml报文中,通过交换xml文件再解析出sql语句来实 ...

  6. 结构体(C语言)

    目录 1. 结构体类型的声明 1.1 结构体回顾 1.1.1 结构的声明 1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明 1.3 结构的自引用 2. 结构体内存对齐 2.1 对齐规则 2 ...

  7. python语言中三个奇妙的返回值

    从公众号看到的,记录下 d = {} d[5] = "test1" d[5.0] = "test2" d["5"] = "test ...

  8. Power BI使用技巧

    一.筛选器相关 1.筛选器的可选择范围不正确 在Power BI中,维度表和事实表之间的数据建模非常重要,我们在进行关系的建立的时候,PBI Desktop会根据我们的数据情况自动选择两个表之间的基数 ...

  9. php几种常用的算法

    1 <?php 2 3 // 选择排序 4 5 function select_sort($arr) 6 7 { 8 9 $count = count($arr); 10 11 for ($i ...

  10. C语言指针一些常见的错误用法

    指针用的好犹如神助,用不好会让你叫苦连连,但大多数人是用不好指针的,所以后来的很多语言都把指针封装,屏蔽.比如JAVA,java是没有指针的,但是很多地方都用到指针,不过不对用户开放,语言的自身机制帮 ...