Mercurial > repos > IBBoard
view Lang/StringManipulation.cs @ 79:a70d89de1435
Re #32: Add staged loading of translations
* Add "extends" attribute to schema so that translation files can define what they extend
* Add "get parent language" method to extractor
* Move loader to using XML translation sets
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Fri, 09 Apr 2010 19:48:51 +0000 |
parents | cc7fae81afec |
children | a5714f82073d |
line wrap: on
line source
// This file (StringManipulation.cs) is a part of the IBBoard library and is copyright 2009 IBBoard. // // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license. using System; using System.Text; namespace IBBoard.Lang { /// <summary> /// Summary description for StringManipulation. /// </summary> public class StringManipulation { private static Encoding utf8; static StringManipulation() { utf8 = Encoding.UTF8; } public static byte[] StringToBytes(string str) { return utf8.GetBytes(str); } public static string ByteArrayToHexString(byte[] arr) { return ByteArrayToHexString(arr, true); } public static string ByteArrayToHexString(byte[] arr, bool spaceBytes) { StringBuilder sb = new StringBuilder(arr.Length); string format = (spaceBytes ? "{0,-3:x2}" : "{0:x2}"); foreach (byte b in arr) { sb.Append(String.Format(format, b)); } return sb.ToString().TrimEnd(); } public static string RemoveFromLast(string stringToTrim, char removeFrom) { return stringToTrim.Substring(0, stringToTrim.LastIndexOf(removeFrom)); } public static string CutToLength(string stringToShorten, int length) { int strLength = stringToShorten.Length; if (length >= strLength-2) { return stringToShorten; } else { int diff = (strLength - length) / 2; int halfLength = strLength / 2; return stringToShorten.Substring(0, halfLength - diff)+"..."+stringToShorten.Substring(halfLength + diff); } } } }