本ライブラリで用いる諸々の用語を多言語対応で曖昧性なく管理するため Code の subclass として定義する
インスタンスを代表する文字列 通常の String として振舞う場合は、この文字列として振舞う
インスタンスがさす言葉の諸言語での表現を文字列として保持する locale指定('lang_country.encoding') => その locale での文字列 locale指定の要素に省略がある場合、残った共通の要素によって文字列を特定する Ex. @locale = {'en'=>'March', 'ja'=>'三月'} ならば、locale が 'en_US', 'en_GB' のいずれでもlocale での文字列は 'March'
インスタンスがさす言葉の意味を特定するための authority の URI を保持する locale指定('lang_country.encoding') => その locale での authority の URI locale指定の要素に省略がある場合、残った共通の要素によってURIを特定する Ex. @locale = {'en'=>'en:March', 'ja'=>'ja:3%E6%9C%88'} ならば、locale が 'en_US', 'en_GB' のいずれでもlocale での authority の URIは 'en:March' 当該用語が標準管理機関で管理されていない場合、wikipedia の当該項目の URI を用いる
代表的な authority の URI @namespace[''] である
オブジェクトの生成
labels : [String] String - '*locale:label=prefix:link' * * 存在すれば、label をインスタンスを代表する文字列とする locale - label に対応する locale指定(なければ、locale 引数の指定を用いる) label - locale 指定に対応する label prefix:link - その locale での authority の URI prefix: - namespace 引数の指定により URI に展開する link - なければ labelをURI encodeして用いる namespace : {prefix=>uri} lables, locale 引数の prefix の展開に用いる locale : [String] String - '*locale=prefix:link' * * 存在すれば、label をインスタンスを代表する文字列とする locale - locale指定 prefix:link - authority の URI prefix: - namespace 引数の指定により URI に展開する Ex. M17n.new(['3月', 'fr:Mars=http://fr.wikipedia.org/wiki/Mars_(mois)', 'March'], {'en_wikipedia'=>'http://en.wikipedia.org/wiki/', 'ja_wikipedia'=>'http://ja.wikipedia.org/wiki/'}, ['=ja_wikipedia:', '*en=en_wikipedia:']) を行うと、生成された M17n では、 @labels = {'' =>'3月', 'fr'=>'Mars', 'en'=>'March'} @namespace = {'' =>'http://ja.wikipedia.org/wiki/3%E6%9C%88', 'fr'=>'http://fr.wikipedia.org/wiki/Mars_(mois)', 'en'=>'http://en.wikipedia.org/wiki/March'} となり、通常の String として振舞う場合は 'March' として振舞う
# File when/basictypes.rb, line 424 424: def initialize(*args) 425: rest, options = _attributes(args) 426: _sequence 427: 428: if (_pool[@label]) 429: _copy_all(_pool[@label]) 430: 431: else 432: if (rest) 433: labels, namespace, locale = args 434: @labels = labels if labels 435: @namespace ||= Parts::Locale._namespace(namespace) if namespace 436: @locale ||= Parts::Locale._locale(locale) if locale 437: end 438: @namespace ||= {} 439: @locale ||= [] 440: 441: @code_space = @namespace[''] 442: self[0..1] = _labels(@labels, @namespace, @locale) 443: end 444: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.