読者です 読者をやめる 読者になる 読者になる

Native2AsciiPluginを使う

SBT(Simple Build Tool)で native2ascii を使う方法です。

まずは、Plugin の設定をします。project/plugins/Plugins.scala を作成します。

import sbt._

class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
  val native2ascii = "eu.getintheloop" % "sbt-native2ascii-plugin" % "0.1.0"
}

次に、project/build/MyProject.scala を編集します。(ScalaTestを使う - NOSIX で作成したファイルです。)

import eu.getintheloop.Native2AsciiPlugin
import sbt._

class MyProject(info: ProjectInfo) extends DefaultProject(info) with Native2AsciiPlugin {
  val scalaTest = "org.scalatest" % "scalatest" % "1.3"

  // for Native2AsciiPlugin
  override def encoding: String = "Windows-31J"
  override def translationInputExtension: String = "properties"
  override def compileAction = super.compileAction dependsOn(native2ascii)
}

encode, translationInputExtension の定義は必須ではありません。下記サイトの Options に詳細が記載してあります。また、compileAction の定義をオーバライドして compile 実行時に native2ascii を実行するようにしています。

GitHub - timperrett/sbt-native2ascii-plugin: SBT Plugin to convert translations to escaped unicode

src/main/i18n/foo.properties を置いて、SBT のコマンド native2ascii を実行すると src/main/resources/foo.properties に変換結果が出力されます。

なのですが、tools.jar に Classpath が通っていないとエラーになってしまいます。tools.jar は例えば C:\Program Files\Java\jdk1.6.0_23\lib にあります。project/build/lib に tools.jar を置いておくと特に設定なく動いてくれます。

Version Info