Latest 1.6.0
Homepage https://github.com/b1uec0in/SwiftJosaFormatter
License MIT
Platforms ios 8.0
Authors

SwiftJosaFormatter

받침에 따라 조사(은,는,이,가,을,를 등)를 교정할 수 있는 String.format과 유사한 함수를 제공합니다.

아직 읽는 방법에 대한 규칙을 찾지 못한 부분이 많습니다. 오동작이 발견되거나 좀 더 나은 규칙이 있다면 꼭!! 알려주세요.

CI Status
Version
License
Language: java|swift

Example

KoreanUtils.format("%@를 %@으로 변경할까요?", "아이폰", "Galaxy")

아이폰을 Galaxy로 변경할까요?

예제 프로그램을 실행하려면, repository를 clone한 후, Example 폴더에서 pod install 을 먼저 실행하세요.

Installation

JosaFormatter는 CocoaPods을 통해 사용할 수 있습니다.
사용하려는 프로젝트의 Podfile에 아래와 같이 추가하세요:

pod "JosaFormatter"

Features

  • 앞 글자의 종성(받침) 여부에 따라 조사(은,는,이,가,을,를 등)를 교정합니다.
  • 한글 뿐만 아니라 영어, 숫자, 한자, 일본어 등도 처리가 가능합니다.
  • 조사 앞에 인용 부호나 괄호가 있어도 동작합니다.
    KoreanUtils.format("'%@'는 사용중인 닉네임입니다.", nickName)
  • Detector를 직접 등록하거나 우선 순위 등을 조정할 수 있습니다. (JongSungDetector 클래스 순서 참고)

JongSungDetector 기본 우선 순위

  • 한글 (HangulJongSungDetector)
    ‘홍길동’은
  • 영문 대문자 약어 (EnglishCapitalJongSungDetector)
    ‘IBM’이(아이비엠이)
  • 일반 영문 (EnglishJongSungDetector)
    ‘Google’을(구글을)
  • 영문+숫자 (EnglishNumberJongSungDetector)
    ‘WD40’는(더블유디포티는) – 이렇게 읽는 경우는 드물어 기본으로는 등록되어 있지 않습니다. (예외 처리 참고)
  • 영문+10이하 숫자 (EnglishNumberKorStyleJongSungDetector)
    ‘MP3’는(엠피쓰리는), ‘WD40’은(더블유디사십은)
  • 숫자 (NumberJongSungDetector)
    ‘1’과 ‘2’는(일과 이는)
  • 한자 (HanjaJongSungDetector)
    ‘6月’은(유월은)
  • 일본어 JapaneseJongSungDetector
    ‘あゆみ’는(아유미는)

예외 처리

  • ‘영문+숫자’는 경우 10 이하만 영어로 읽도록 되어 있습니다.
    보통 ‘MP3’는 ‘엠피쓰리’로 읽지만, ‘Office 2000’은 ‘오피스 이천’으로 읽습니다.
    만약 ‘영문+숫자’를 항상 영어로 읽도록 하기 위해서는 직접 EnglishNumberJongSungDetector 를 등록해야 합니다.
var josaFormatter = JosaFormatter()
var text = josaFormatter.format("%@을 구매하시겠습니까?", "Office 2000"))
// Office 2000을 구매하시겠습니까? -> 기본 설정은 '오피스 이천'으로 읽도록 되어 있음.

// EnglishNumberKorStyleJongSungDetector 대신 EnglishNumberJongSungDetector를 등록
josaFormatter.jongSungDetectors = josaFormatter.jongSungDetectors.map {
    $0 is JosaFormatter.EnglishNumberKorStyleJongSungDetector ? JosaFormatter.EnglishNumberJongSungDetector() : $0
}

var text = josaFormatter.format("%@을 구매하시겠습니까?", "Office 2000"))
// Office 2000를 구매하시겠습니까? -> '오피스 투싸우전드'로 읽음
  • ‘한글+숫자’인 경우 숫자는 한글로 읽도록 되어 있습니다.
    하지만, 영어를 한글로 쓴 경우 숫자도 영어로 읽어야 해서 오동작하는 경우가 있습니다.
    현재는 읽는 규칙을 직접 추가해줘서 영어로 간주하도록 할 수 있습니다.

    KoreanUtils.defaultJosaFormatter.addReadRule("베타", "beta")
    var text = KoreanUtils.format("%@을 구매하시겠습니까?", "베가 베타 3"))
    // 베가 베타 3를 구매하시겠습니까?

Repositories

Reference

Latest podspec

{
    "name": "JosaFormatter",
    "version": "1.6.0",
    "summary": "ubc1buce68uc5d0 ub530ub77c uc870uc0ac(uc740,ub294,uc774,uac00,uc744,ub97c ub4f1)ub97c uad50uc815ud560 uc218 uc788ub294 String.formatuacfc uc720uc0acud55c ud568uc218ub97c uc81cuacf5ud569ub2c8ub2e4.",
    "description": "uc55e uae00uc790uc758 uc885uc131(ubc1buce68) uc5ecubd80uc5d0 ub530ub77c uc870uc0ac(uc740,ub294,uc774,uac00,uc744,ub97c ub4f1)ub97c uad50uc815ud569ub2c8ub2e4.nud55cuae00 ubfd0ub9cc uc544ub2c8ub77c uc601uc5b4, uc22buc790, ud55cuc790, uc77cubcf8uc5b4 ub4f1ub3c4 ucc98ub9acuac00 uac00ub2a5ud569ub2c8ub2e4.nuc870uc0ac uc55euc5d0 uc778uc6a9 ubd80ud638ub098 uad04ud638uac00 uc788uc5b4ub3c4 ub3d9uc791ud569ub2c8ub2e4.nKoreanUtils.format("'%@'ub294 uc0acuc6a9uc911uc778 ub2c9ub124uc784 uc785ub2c8ub2e4.", nickName)nDetectorub97c uc9c1uc811 ub4f1ub85dud558uac70ub098 uc6b0uc120 uc21cuc704 ub4f1uc744 uc870uc815ud560 uc218 uc788uc2b5ub2c8ub2e4.",
    "homepage": "https://github.com/b1uec0in/SwiftJosaFormatter",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "b1uec0in": "[email protected]"
    },
    "source": {
        "git": "https://github.com/b1uec0in/SwiftJosaFormatter.git",
        "tag": "1.6.0"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "JosaFormatter/Classes/**/*",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This