我正在创建一个multilang应用程序,我想阅读"数组"从文件中,我不知道从哪里开始。
我的english.lang看起来像:
LOGIN_TITLE = Test login
LOGIN_CREATE_ACC_LABEL = Create an account
LOGIN_REMEMBER_ME_CHECKBOX = Remember Me
LOGIN_AUTO_LOGIN = Auto Login
LOGIN_STATUS_WELCOME = Welcome to Client
LOGIN_STATUS_WRONG = Invalid username or password
LOGIN_SING_IN_BUTTON = Sing In
我正在寻找像:
string = getLang("LOGIN_TITLE");
我有一个关于如何做的想法,但并不是最佳的,我想做的就像:从文件中逐行读取包含" LOGIN_TITLE"然后替换" LOGIN_TITLE ="空白,遗骸应该是"测试登录",我需要的字符串
我认为如果我的lang文件太大,它的性能会很低。
你有任何关于如何做到这一点的想法吗?
答案 0 :(得分:1)
我会用字典
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.txt";
static void Main(string[] args)
{
Header header = new Header(FILENAME);
}
}
public class Header
{
Dictionary<string, string> dict = new Dictionary<string, string>();
public Header(string filename)
{
StreamReader reader = new StreamReader(filename);
string inputLine = "";
while ((inputLine = reader.ReadLine()) != null)
{
inputLine = inputLine.Trim();
string[] inputArray = inputLine.Split(new char[] { '=' }).ToArray();
dict.Add(inputArray[0].Trim(), inputArray[1].Trim());
}
}
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为你更好不做你自己。
本地化是最终用户应用程序开发中最常见的问题,很久以前就解决了你的问题。请参阅stackoverflow上的另一个答案:How to use localization in C#
FredrikMörk简要介绍了如何在代码中创建/使用资源本地化文件,并举例说明。