zoukankan      html  css  js  c++  java
  • Apollo 刨析:Localization

    九月 30 2014 11:27 上午     admin

    0 Comments

    今天我们来看一看Apollo中的Localization Component。

    本地化在Apollo中的使用

    image

    image

    像这样的代码大家在Apollo中肯定经常见到,那么NullLocalizer.Instance是什么?我们来看一看NullLocalizer

    image

    LocalizationModule

    不知道大家对“Apollo 刨析:前奏曲”中的CachingModule还有没有印象,Apollo用了类似的机制,只不过这一次把构造函数注入变成了属性注入

    image

    在Load方法我们可以看到Apollo注册了一个IText接口,那这个IText接口是干什么用的?请看下面!

    我们看到的是 LocalizationUtilities.Resolve 实现了具体的注入。

    image

    ,但是怎么确保它是以属性输入的方式被注入进来的?下面我们接着看。

    这个方法比较简单,最终 T 属性被注入成 IText.Get 方法。上面我们说到我们注册了IText接口,最终的实现类是

    Text。我们看下Text 是怎么实现的。

    image

    var currentCulture = workContext.CurrentCulture;

    这个是获取网站的语言种类。

    image

    这里我们进行了调整了一下,期初是从站点配置文件中获取语言种类。

    下面我们主要看下 _localizedStringManager.GetLocalizedString(_scope, textHint, currentCulture)

    image

    第一行 LoadCulture(cultureName);从下面的几个.po文件中进行加载语言化。优先级从头到尾。

    image

    .PO 文件格式如下:

    image

  • 相关阅读:
    洛谷 P1231 教辅的组成
    BZOJ 2190: [SDOI2008]仪仗队
    Codeforces GYM 100741A . Queries
    COGS 1298. 通讯问题
    洛谷 P2604 [ZJOI2010]网络扩容
    codevs 1227 方格取数 2
    codevs 1004 四子连棋
    洛谷 P2319 [HNOI2006]超级英雄
    洛谷 P2153 [SDOI2009]晨跑
    插入排序
  • 原文地址:https://www.cnblogs.com/laichenshui/p/4002001.html
Copyright © 2011-2022 走看看