和暦の扱い
最終更新日: 2022年4月15日
R8 | R9
5. でフルビルドを行わず、既存アプリケーションのファイル wagbyapp/webapps/<プロジェクトID>/WEB-INF/classes/TranslateJpEra.properties に 4. で追加された新元号に関する行を手動で追記することでも対応できます。ただし wagbyapp(Tomcat)の再起動は必要です。
うまくいかない場合、次の点をご確認ください。
wagbydesigner/bin/webpage/system フォルダの common.js ファイルを編集します。
[2019.4.1追記] 新元号 "令和" に対応する common.js の修正箇所は以下のとおりです。
Designerで "環境 > メッセージ > ヘルプ > 日付入力" のツールチップメッセージに "令和" を含めます。
これまでのメッセージは次の通りでした。
変更例を示します。
"ggge年" については、月日の情報を無視(2019年1月1日となる)して年表記としているため、2019年5月1日で登録した日付は平成31年で表示されます。
wagbydesigner/bin/webpage/system/common.js を編集後に「フルビルド」を行うと、この変更が反映されたアプリケーションをビルドすることができます。フルビルドが必要なのは初回のみです。
ここで編集した common.js を wagbyapp/webapps/<プロジェクトID>/system/common.js に上書きします。
さらにブラウザのキャッシュが更新されるように wagbyapp/webapps/<プロジェクトID>/WEB-INF/classes/buildlog.properties の build.timestamp の値を変更します。作業日の日付時刻とするとよいでしょう。
上のファイルの修正は、元号が変わったあとに出荷された R7.12.13/R8.2.3 以降のWagbyに含まれています。バージョンアップ版をご利用いただける場合は、上記修正作業は不要です。
TranslateJpEra.properties.UTF8 に置き換え文字列ルールを記述しています。標準は次のとおりです。
セミコロンを区切り文字とし、左の文字列を右の文字列に置換します。
(例1) 元年表記を行わない場合は、上記4行を削除してください。
(例2) 次の行を加えると、"令1年" が "令元年" と表示されるようになります。
TranslateJpEra.properties.UTF8 ファイルを修正したときは「元号を追加する」の手順に従って反映させてください。
wagbydesigner/bin/webpage/system フォルダの common.js ファイルで制御してます。具体的には replaceFirstYearOfImperialEra 関数で行っています。
グローバル変数 isReplaceFirstYearOfImperialEra の値を false にすると、元年表示を行わないようになります。
元号を追加する (1) 設定
出力制御 > フォーマット
erainfo.4.startdate=2019-5-1
erainfo.4.enddate=9999-12-31
erainfo.4.fullname=令和
erainfo.4.shortname=令
erainfo.4.shortchar1=R
erainfo.4.shortchar2=r
erainfo.4.shortchar3=R
erainfo.4.shortchar4=r
新たな元号の startdate も同じ値とし、enddateは9999-12-31とします。
新たな元号の fullname,shortname,shortcharXX に対応する値を入力します。
ワンポイント
トラブルシューティング
入力制御 > 日付・時刻 > オプション表示(日付)
変数wareki_date_a,wareki_regexp_a,wareki_fullname_a,wareki_shortcharpattern_aに新たな元号の値を追加してください。
var wareki_date_a = new Array(
new Date(1868, 9-1, 8),
new Date(1912, 7-1, 30),
new Date(1926, 12-1, 25),
new Date(1989, 1-1, 8),
new Date(2019, 5-1, 1)
);
var wareki_regexp_a = new Array(
new RegExp("明[治]?", "g"),
new RegExp("大[正]?", "g"),
new RegExp("昭[和]?", "g"),
new RegExp("平[成]?", "g"),
new RegExp("令[和]?", "g")
);
var wareki_fullname_a = new Array("明治", "大正", "昭和", "平成", "令和");
var wareki_shortcharpattern_a = new Array("Mm", "Tt", "Ss", "Hh", "Rr");
...
var warekiFullnameStr = "明治|大正|昭和|平成|令和";
var warekiShortnameRegExpStr = "(?:[MmTtSsHhRr])";
ヘルプメッセージ
yyyy-MM-dd 形式で入力して下さい。(yyyy は西暦、MM は月、dd は日です) 明治、大正、昭和、平成(漢字二文字)yy年MM月dd日 形式で入力して下さい。(例:平成1年1月1日) M、T、S、H(アルファベット一文字)yy/MM/dd/ 形式で入力して下さい。(例:H1/1/1)
yyyy-MM-dd 形式で入力して下さい。(yyyy は西暦、MM は月、dd は日です) 明治、大正、昭和、平成、令和(漢字二文字)yy年MM月dd日 形式で入力して下さい。(例:令和1年1月1日) M、T、S、H、R(アルファベット一文字)yy/MM/dd/ 形式で入力して下さい。(例:R1/1/1)
仕様・制約
元号を追加する (2) 変更を反映する
ビルドを行う
ビルドを行わず、既存アプリケーションを直接、変更する
build.timestamp=2019-03-28 13\:53\:54
Wagbyのバージョンアップによる対応
手動対応が必要な設定
元年と表示する
出力制御 > フォーマット
replacePattern.0=明治1年;明治元年
replacePattern.1=大正1年;大正元年
replacePattern.2=昭和1年;昭和元年
replacePattern.3=平成1年;平成元年
replacePattern.4=令和1年;令和元年
カスタマイズ
replacePatetrn.5=令1年;令元年
入力制御 > 日付・時刻 > オプション表示(日付)