2016-11-01 5 views
1

새로운 제품 카테고리를 만들었지 만 카테고리 이름이 Cirillyc에 있고 경로의 Cirillyc가 좋지 않기 때문에 웹 레이어의 Content 폴더에 디렉토리를 생성하고 싶습니다. 폴더 이름입니다. 나는 UnidecodeSharpFork을 시도했지만 디렉토리 이름에 좋지 않은 다른 기호 (예 : ')를 생성합니다. 이 상황에서 다른 옵션이 있습니까?Cirillyc에서 라틴어로 Transliterate

답변

1

당신은 malually 음역지도 구현하는 시도 할 수 있습니다 : 다음 사용

// Capital letters should be transliterated by the same scheme 
public class CaseInsensitiveComparer: IEqualityComparer<char> { 
    public bool Equals(char left, char right) { 
    return char.ToUpperInvariant(left) == char.ToUpperInvariant(right); 
    } 
    public int GetHashCode(char value) { 
    return char.ToUpperInvariant(value).GetHashCode(); 
    } 
} 

... 

// implement map manually 
private static Dictionary<char, String> map = 
    new Dictionary<char, string>(new CaseInsensitiveComparer()) { 
    {'а', "a" }, 
    {'б', "b" }, 
    ... 
    {'я', "ya" }, 
}; 

을 :

string source = "My string (Моя Строка)"; 

string result = string.Concat(source.Select(c => { 
    string st; 

    if (map.TryGetValue(c, out st)) 
    return char.IsUpper(c) ? st.ToUpperInvariant() : st; 
    else 
    return c.ToString(); 
})); 

테스트를

// My string (Moya Stroka) 
Console.Write(result);