mirror of
https://github.com/tonytins/cstdotnet.git
synced 2025-07-04 13:46:54 -04:00
UIText class
The UIText class allows for travseing in "/<directory>/<language>.dir" directories and searching for CST files by their Id number. See usage.md for more info.
This commit is contained in:
parent
86ed534870
commit
0ff7bb68c4
22 changed files with 289 additions and 170 deletions
|
@ -29,7 +29,7 @@
|
|||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"public static class CST\n",
|
||||
"public static class CaretSeparatedText\n",
|
||||
"{\n",
|
||||
" const char CARET = '^';\n",
|
||||
" static readonly string _lf = \"\\u000A\";\n",
|
||||
|
@ -122,41 +122,64 @@
|
|||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"class ContentStrings\n",
|
||||
"{\n",
|
||||
" string Language { get; set; } = \"english\";\n",
|
||||
"\n",
|
||||
" public string GetText(string table, int key) => GetText(table, key.ToString());\n",
|
||||
"\n",
|
||||
" public string GetText(string table, string key)\n",
|
||||
" {\n",
|
||||
" var baseDir = Path.Combine(Environment.CurrentDirectory, \"data\", \"uitext\", $\"{Language}.dir\");\n",
|
||||
" var files = Directory.GetFiles(baseDir);\n",
|
||||
"\n",
|
||||
" foreach (var file in files)\n",
|
||||
" {\n",
|
||||
" var id = Path.GetFileName(file);\n",
|
||||
" var second = id.IndexOf(\"_\", 1);\n",
|
||||
"\n",
|
||||
" if (second == -1)\n",
|
||||
" continue;\n",
|
||||
"\n",
|
||||
" id = id.Substring(1, second - 1);\n",
|
||||
"\n",
|
||||
" if (id != table)\n",
|
||||
" continue;\n",
|
||||
"\n",
|
||||
" var content = File.ReadAllText(file);\n",
|
||||
" return CaretSeparatedText.Parse(content, key);\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" return \"***MISSING***\";\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" public static string CSTFile(string cst, string key)\n",
|
||||
" {\n",
|
||||
" var path = Path.Combine(AppContext.BaseDirectory, cst);\n",
|
||||
" var file = File.ReadAllText(path);\n",
|
||||
"\n",
|
||||
" return CaretSeparatedText.Parse(file, key);\n",
|
||||
" }\n",
|
||||
"}"
|
||||
],
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"var english = new ContentStrings();\n",
|
||||
"var v1Path = Path.Combine(Environment.CurrentDirectory, \"data\", \"v1.cst\");\n",
|
||||
"var v1File = File.ReadAllText(v1Path);\n",
|
||||
"var one = CST.Parse(v1File, 1);\n",
|
||||
"var three = CST.Parse(v1File, 3);\n",
|
||||
"var four = CST.Parse(v1File, 4);\n",
|
||||
"var one = english.GetText(\"102\", \"Singleline\");\n",
|
||||
"/*var three = CaretSeparatedText.Parse(v1File, 3);\n",
|
||||
"var four = CaretSeparatedText.Parse(v1File, 4); */\n",
|
||||
"Console.WriteLine($\"One:{Environment.NewLine}{one}\");\n",
|
||||
"Console.WriteLine($\"Three:{Environment.NewLine}{three}\");\n",
|
||||
"Console.WriteLine($\"Four:{Environment.NewLine}{four}\");"
|
||||
"/*Console.WriteLine($\"Three:{Environment.NewLine}{three}\");\n",
|
||||
"Console.WriteLine($\"Four:{Environment.NewLine}{four}\"); */"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "execute_result",
|
||||
"data": {
|
||||
"text/plain": "One:\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac dictum orci, at tincidunt nulla. Donec aliquet, %1 eros non interdum posuere, ipsum sapien molestie nunc, nec facilisis libero ipsum et risus. In sed lorem vel ipsum placerat viverra.\r\n"
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"output_type": "execute_result",
|
||||
"data": {
|
||||
"text/plain": "Three:\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam venenatis ac odio ut pretium. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec semper turpis tempor, bibendum sapien at, blandit neque. Vivamus hendrerit imperdiet elit, vel sollicitudin nulla luctus vel. Vivamus nisl quam, feugiat a diam aliquam, iaculis vestibulum nunc. Maecenas euismod leo enim, faucibus ultrices ipsum semper eu. Praesent ullamcorper justo at maximus ultricies.\r\n"
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"output_type": "execute_result",
|
||||
"data": {
|
||||
"text/plain": "Four:\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce justo dui, rhoncus a pulvinar sit amet, fermentum vitae lorem. Maecenas nec nisi sit amet eros rutrum congue. In sagittis suscipit arcu, ac vestibulum nunc feugiat volutpat.\r\n\r\nVivamus consequat velit dui, sit amet rhoncus dui malesuada a. Maecenas hendrerit commodo mi et scelerisque. Cras pharetra ultrices aliquam. Praesent ac efficitur magna, vitae scelerisque metus.\r\n"
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
|
@ -165,29 +188,12 @@
|
|||
"source": [
|
||||
"var v2Path = Path.Combine(Environment.CurrentDirectory, \"data\", \"v2.cst\");\n",
|
||||
"var v2File = File.ReadAllText(v2Path);\n",
|
||||
"var singleLineV2 = CST.Parse(v2File, \"Singleline\");\n",
|
||||
"var multiLineV2 = CST.Parse(v2File, \"Multiline\");\n",
|
||||
"var singleLineV2 = CaretSeparatedText.Parse(v2File, \"Singleline\");\n",
|
||||
"var multiLineV2 = CaretSeparatedText.Parse(v2File, \"Multiline\");\n",
|
||||
"Console.WriteLine($\"Single line v2:{Environment.NewLine}{singleLineV2}\");\n",
|
||||
"Console.WriteLine($\"Multiline v2:{Environment.NewLine}{multiLineV2}\");"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "execute_result",
|
||||
"data": {
|
||||
"text/plain": "Single line v2:\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies nulla eu tortor mattis, dictum posuere lacus ornare. Maecenas a massa in ligula finibus luctus eu vitae nibh. Proin imperdiet dapibus mauris quis placerat.\r\n"
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"output_type": "execute_result",
|
||||
"data": {
|
||||
"text/plain": "Multiline v2:\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida nunc non justo pretium consectetur. Sed tempus libero ac ligula aliquam elementum. Duis vitae interdum leo. Sed semper nulla %1 a lectus dictum dictum.\r\n\r\nQuisque vehicula, nisi ut scelerisque sodales, nisi ipsum sodales ipsum, in rutrum tellus lacus sed nibh. Etiam mauris velit, elementum sed placerat et, elementum et tellus. Duis vitae elit fermentum, viverra lorem in, lobortis elit\r\n"
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
"outputs": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
|
8
notebooks/data/uitext/english.dir/_101_v1.cst
Normal file
8
notebooks/data/uitext/english.dir/_101_v1.cst
Normal file
|
@ -0,0 +1,8 @@
|
|||
1 ^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ac dictum orci, at tincidunt nulla. Donec aliquet, %1 eros non interdum posuere, ipsum sapien molestie nunc, nec facilisis libero ipsum et risus. In sed lorem vel ipsum placerat viverra.^
|
||||
2 ^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc pharetra nunc nec erat finibus efficitur. Duis non ullamcorper purus. Donec sit amet ultricies sapien. Sed lacinia sem eu nunc gravida, vitae tincidunt eros tempus. Quisque nibh est, tempus sit amet purus at, facilisis cursus ante. Nam nisi purus, vehicula sed magna ac, lobortis aliquam urna. Sed condimentum, felis a placerat tincidunt, est augue pulvinar turpis, eu dictum leo diam quis mi. Nulla non efficitur neque, sed efficitur orci. Aliquam quis libero consequat, convallis tortor sit amet, varius orci.
|
||||
|
||||
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc vel dictum eros, vitae mattis risus. Curabitur eget nisi interdum, euismod nisl in, fermentum turpis. Morbi a feugiat lacus. Duis ligula felis, commodo quis sodales ac, congue sit amet tortor. Sed vulputate, velit id interdum convallis, purus nisl interdum lorem, sit amet aliquam lacus sapien ac neque. Proin sit amet ultricies mi.^
|
||||
3 ^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam venenatis ac odio ut pretium. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec semper turpis tempor, bibendum sapien at, blandit neque. Vivamus hendrerit imperdiet elit, vel sollicitudin nulla luctus vel. Vivamus nisl quam, feugiat a diam aliquam, iaculis vestibulum nunc. Maecenas euismod leo enim, faucibus ultrices ipsum semper eu. Praesent ullamcorper justo at maximus ultricies.^
|
||||
4^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce justo dui, rhoncus a pulvinar sit amet, fermentum vitae lorem. Maecenas nec nisi sit amet eros rutrum congue. In sagittis suscipit arcu, ac vestibulum nunc feugiat volutpat.
|
||||
|
||||
Vivamus consequat velit dui, sit amet rhoncus dui malesuada a. Maecenas hendrerit commodo mi et scelerisque. Cras pharetra ultrices aliquam. Praesent ac efficitur magna, vitae scelerisque metus.^
|
4
notebooks/data/uitext/english.dir/_102_v2.cst
Normal file
4
notebooks/data/uitext/english.dir/_102_v2.cst
Normal file
|
@ -0,0 +1,4 @@
|
|||
Singleline^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ultricies nulla eu tortor mattis, dictum posuere lacus ornare. Maecenas a massa in ligula finibus luctus eu vitae nibh. Proin imperdiet dapibus mauris quis placerat.^
|
||||
Multiline ^Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida nunc non justo pretium consectetur. Sed tempus libero ac ligula aliquam elementum. Duis vitae interdum leo. Sed semper nulla %1 a lectus dictum dictum.
|
||||
|
||||
Quisque vehicula, nisi ut scelerisque sodales, nisi ipsum sodales ipsum, in rutrum tellus lacus sed nibh. Etiam mauris velit, elementum sed placerat et, elementum et tellus. Duis vitae elit fermentum, viverra lorem in, lobortis elit^
|
Loading…
Add table
Add a link
Reference in a new issue