当前位置: 首页>>代码示例>>C#>>正文


C# Catalog.AddTranslation方法代码示例

本文整理汇总了C#中Catalog.AddTranslation方法的典型用法代码示例。如果您正苦于以下问题:C# Catalog.AddTranslation方法的具体用法?C# Catalog.AddTranslation怎么用?C# Catalog.AddTranslation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Catalog的用法示例。


在下文中一共展示了Catalog.AddTranslation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Parse

        /// <summary>
        /// Parse the po file and return a <see cref="Catalog"/>.
        /// </summary>
        public Catalog Parse()
        {
            Catalog dict = new Catalog();

            string msgctxtCache = null;
            string msgctxt = null;
            string msgid = "";

            Token currentToken;
            while ((currentToken = tokenizer.GetNextToken()) != null) {
                TokenWord command = ExpectWord(currentToken);
                if (command.Word == "msgctxt") {
                    TokenString ctxtString = ExpectString(tokenizer.GetNextToken());
                    msgctxtCache = encoding.GetString(ctxtString.Data);
                } else if (command.Word == "msgid") {
                    TokenString idString = ExpectString(tokenizer.GetNextToken());
                    msgid = encoding.GetString(idString.Data);
                    msgctxt = msgctxtCache;
                    msgctxtCache = null;
                } else if (command.Word == "msgstr") {
                    Token indexOrString = ExpectIndexOrString(tokenizer.GetNextToken());
                    int index = 0;
                    if (indexOrString is TokenIndex) {
                        index = ((TokenIndex)indexOrString).I;
                        indexOrString = tokenizer.GetNextToken();
                    }
                    TokenString msgstrToken = ExpectString(indexOrString);
                    string msgstr = encoding.GetString(msgstrToken.Data);

                    //now add it to the catalog
                    if (msgid == "") { //header
                        dict.PluralForm = GetPluralForm(msgstr);
                        this.encoding = GetEncoding(msgstr);
                    } else {
                        dict.AddTranslation(msgctxt, msgid, msgstr, index);
                    }
                } else if (command.Word == "msgid_plural") {
                    //msgid_plural is followed by a string which we check here.
                    ExpectString(tokenizer.GetNextToken());
                    //but in the end, we ignore msgid_plural completely
                    //FIXME: is this correct?
                } else {
                    //unrecognized command
                    throw new ParserException(
                        string.Format("Unexpected Word \"{0}\" at {1}:{2}", command.Word, command.Line, command.Column));
                }
            }

            return dict;
        }
开发者ID:rgcjonas,项目名称:tinyi18n-sharp,代码行数:53,代码来源:Parser.cs


注:本文中的Catalog.AddTranslation方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。