mirror of
https://github.com/tonytins/cstdotnet.git
synced 2025-03-15 14:11:26 +00:00
.NET Parser for The Sims Online's CST format.
- Switched to Sixam.CST namespace and marked CSTNet namespace as obsolete. - Renumbered patch version from single to triple digits. - Performance improvements. |
||
---|---|---|
.github | ||
.vscode | ||
CSTNet | ||
CSTNet.Tests | ||
notebooks | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
changelog.md | ||
code_of_conduct.md | ||
LICENSE | ||
README.md | ||
Sixam.CST.sln | ||
Sixam.CST.sln.licenseheader |
Sixam.CST
Caret-Separated Text (or CST) is a key-value pair format represented by digits or words as keys and the value as text enclosed between carets. (e.g. <key> ^<text>^
) Any text which is not enclosed with carets is considered a comment and ignored. Neither strings nor comments may use the caret character. Sixam.CST is a library for parsing the CST format.
Usage
1 ^The quick brown fox jumps over the lazy dog.^
#r "nuget:CSTNet,1.0.300"
using System;
using System.IO;
using CSTNet;
var file = File.ReadAllText("example.cst");
var example = CaretSeparatedText.Parse(file, 1);
Console.WriteLine(example);
See working example on .NET Fiddle.
In production, CST files were used in The Sims Online (TSO) to provide translations. Each translation was split into their respective directories:
uitext/english.dir/_154_miscstrings.cst
uitext/swedish.dir/_154_miscstrings.cst
Sixam.CST only provides the basic parsing functionality.
To-do
- Support for arguments (e.g.
%1
)
Known issues
- Skipping comments is a little buggy.
Requirements
Prerequisites
- .NET 5+ or Core 3.1
- .NET Interactive for notebooks
- VSCode Extension (does not require Jupyter)
- nteract (requires Jupyter)
License
I license this project under the MIT license - see LICENSE for details.