C#용 SmartFormat.NET에서 사용할 수 있는 한국어 조사 포매터입니다. python용 구현체는 smartformat-korean을 사용해주세요.
Nuget 관리자 콘솔을 이용해서 설치:
PM> Install-Package SmartFormat.NET-Korean
혹은 Nuget 페이지에서 다운로드
namespace SmartFormatKoreanDemo
{
class Program
{
static void Main(string[] args)
{
Smart.Default.AddExtensions(new KoreanFormatter(Smart.Default));
Console.WriteLine(Smart.Format("{0:은} {1:을} 먹었다.", "나오", "부엉이"));
Console.WriteLine(Smart.Format("{0:이} 갖고 싶어요.", "나오 피규어"));
Console.WriteLine(Smart.Format("{0:이} {1:을} 춘다.", "티라노", "콩댄스"));
Console.WriteLine(Smart.Format("{0:의} {1:이에요}", "넥슨 왓! 스튜디오", "듀랑고"));
Console.ReadKey();
}
}
}
의
, 도
, 만
, 보다
, 부터
, 까지
, 마저
, 조차
, 에~
,
께~
, 하~
에는 어떤 단어가 앞서도 형태가 변하지 않습니다:
나오의, 모리안의, 키홀의, 나오도, 모리안도, 키홀도
반면 은(는)
, 이(가)
, 을(를)
, 과(와)
는 앞선 단어의 마지막 음절의 받침
유무에 따라 형태가 달라집니다:
나오는, 모리안은, 키홀은
(으)로~
도 비슷한 규칙을 따르지만 앞선 받침이 ㄹ
일 경우엔 받침이 없는 것과
같게 취급합니다:
나오로, 모리안으로, 키홀로
서술격 조사 (이)다
는 어미가 활용되어 다양한 형태로 변형될 수 있습니다:
나오지만, 모리안이지만, 키홀이에요, 나오예요
SmartFormat 한국어 확장은 자동으로 가장 자연스러운 조사 형태를 선택합니다.
만약 어떤 형태가 자연스러운지 알 수 없을 때에는 은(는)
, (으)로
처럼
모든 형태를 병기합니다.
// "대한민국은 민주공화국이다."
Smart.Format("{0:는} {1:다}.", "대한민국", "민주공화국");
// "나오는 검은사신으로 불린다.
Smart.Format("{0:은} {1:로} 불린다.", "나오", "검은사신");
단어가 숫자로 끝나더라도 자연스러운 조사 형태가 선택됩니다:
// "레벨 10이"
Smart.Format("레벨 {0:이}", 10);
// "레벨 999가"
Smart.Format("레벨 {0:이}", 999);
괄호 속 단어나 구두점은 조사 형태를 선택할 때 참고하지 않습니다:
// "모리안,,,이?"
Smart.Format("{0:가}?", "모리안,,,");
// "<듀랑고>를 샀다."
Smart.Format("{0:을} 샀다.", "<듀랑고>");
문자열에 꾸밈 태그 등을 사용하는 경우에는 조사만 분리해서 표기할 수 있습니다:
// "<i>돌날</i>로"
Smart.Format("<i>{0}</i>{0:-으로}", "돌날");
// "으로"
Smart.Format("{0:-으로}", "마법");
넥슨 왓 스튜디오의 김찬웅과 이흥섭이 만들었고 제3조항을 포함하는 BSD 허가서를 채택했습니다.