20180428

元号対応 Windows 10 機能更新プログラム (2018 Spring Release) における元号のレジストリ更新についてEra Handling for the Japanese Calendar

Windows 10 機能更新プログラム (2018 Spring Release) における元号のレジストリ更新について

【外部リンク】
https://blogs.technet.microsoft.com/jperablog/2018/04/20/rs4-registry/

Windows 10 機能更新プログラム (2018 Spring Release) における元号のレジストリ更新について

今春リリース予定の Windows 10 の機能更新プログラムでは、新しい元号となる 2019 年 5 月に先立ち、各元号の期間を保持しているレジストリが更新される予定です。新しい元号の名称はまだ公表されていませんので、レジストリにはプレースホルダーとして仮の名称が設定された形となります。

レジストリの更新は、新元号が追加されることに伴う問題をより早い段階で発見し、来る 2019 年 5 月に問題が発生することを未然に防ぐことを目的にリリースされます。Windows 10 Insider Preview での先行公開を経て、既存のアプリケーションやシステムへの影響も検討した上で、このタイミングでリリースされることが決定されました。


更新されるレジストリの設定は以下のとおりです。


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]

"1868 01 01"="明治_明_Meiji_M"

"1912 07 30"="大正_大_Taisho_T"

"1926 12 25"="昭和_昭_Showa_S"

"1989 01 08"="平成_平_Heisei_H"

"2019 05 01"="??_?_??????_?"



レジストリが更新されることで想定されるコントロールや API への影響は、次のようなものが考えられます。


2019 年 5 月以降の日付を表す和暦の文字列がプレースホルダーに置き換わる可能性があります。例えば、"2020/10/10" は "??2年10月10日" になります。カレンダー コントロールや、.NET Framework 4 以降はこの変更の影響を受けます。
2019 年 5 月以降の日付を表す和暦の文字列を日付型に変換する API やメソッドは、エラーを返したり例外がスローする可能性があります。.NET Framework 4 以降はこの変更の影響を受けます。
元号の一覧を返すメソッドやプロパティは 5 つの元号を返します。現在の 4 つの元号を返すことを仮定したアプリケーションなどは影響を受ける可能性があります。

今回の機能更新プログラムの時点では、レジストリを参照している機能はカレンダー コントロールや .NET Framework 4 以降のバージョンなどに限られています。

.NET Framework 3.5 など、本レジストリに未対応の機能や製品については今後対応を進めていく予定で、進展があり次第このブログを通じて情報を発信する予定です。


なお、新元号が公表された後は改めてレジストリが更新される予定のため、例えば "??2年10月10日" は西暦に変換できなくなります。アプリケーションやシステムでは、プレースホルダーの元号をそのままデータベースやファイルなどに保存しないようにご注意ください。現時点で 2019 年 5 月以降の日付を扱う必要がある環境では、お手数をおかけいたしますが、上記で黄色でハイライトしたレジストリ キーを削除するようお願いします。


また、上記の 2. につきましては、次回の機能更新プログラムの時期を目途に、.NET Framework のクラス ライブラリの動作を例外をスローせず許容するように変更する予定です。既存のアプリケーションへの影響も考慮し、この変更は設定などで切り替えを可能とすることも検討しています。詳細な対応方針が決まり情報公開できる運びとなりましたら、このブログを通じてご案内する予定です。


今回の Windows 10 の機能更新プログラムでレジストリの更新を行う目的につきましては、下記の弊社社員のブログ記事でも公開しています。あわせてご参考にしていただければ幸いです。


The Japanese Calendar’s Y2K Moment
https://blogs.msdn.microsoft.com/shawnste/2018/04/12/the-japanese-calendars-y2k-moment/

https://blogs.msdn.microsoft.com/shawnste/2018/04/12/the-japanese-calendars-y2k-moment/


【外部リンク】
https://msdn.microsoft.com/en-us/library/ee923790(v=vs.85).aspx
Era Handling for the Japanese Calendar
Era Handling for the Japanese Calendar
Many calendars have eras, such as AD/BC or CE/BCE. In the Japanese Calendar, years are described by nengō, a combination of the year number and era name. For example, 2009 is Heisei 21. In the past, Japanese era names changed frequently, but now the Japanese eras change only on imperial succession. Windows and Microsoft .NET have historically supported the four modern eras under this policy: Meiji, Taishō, Shōwa and Heisei.

With Windows 7, Windows Server 2008 R2, and the .NET Framework 4, Microsoft recognizes that additional eras may be added in the future. On these versions of Windows the era data is stored in the registry under the key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras
If necessary, additional eras can be added to that key through the normal Windows Update process. This key can be viewed using the registry editor (Regedit.exe). An example of the key and values shipped in Windows 7 is:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"1868 01 01"="明治_明_Meiji_M"
"1912 07 30"="大正_大_Taisho_T"
"1926 12 25"="昭和_昭_Showa_S"
"1989 01 08"="平成_平_Heisei_H"
The name of each era value is the date the era begins in the Gregorian calendar. The value contains the era name in Japanese, the abbreviated name in Japanese, the name in English, and an abbreviated name in English:

"YYYY MM DD"="JE_AJE_EE_AEE"
where
"YYYY MM DD" is the Gregorian date of the start of the era in year, month, day form where year is 4 digits, day is 2 digits and month is also 2 digits. A space separates each part of the date.
"JE" is the Japanese name of the era, and is followed by an underscore.
"AJE" is the abbreviated name of the era, in Japanese, and is followed by an underscore.
"EE" is the English name of the Japanese era, and is followed by an underscore.
"AEE" is the abbreviated English name of the Japanese era.
One consideration for application developers is the possibility that additional eras will be added by Windows Update or other means. In that case the application may encounter more than the expected four eras for the Japanese calendar. For testing purposes testers may add an additional era to the registry; however, that should be restricted to test machines only, as it impacts the behavior of the entire machine.

An example of such a key that could be used for test follows. This change can be made with the registry editor. (This is an example for test use only, and is not intended to predict any future additions.)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2020 09 01"="仮名_仮_Test Era_X"

【外部リンク】
https://www.google.co.jp/search?q=Note+that+this+only+impacts+machines+running+Windows+7+and+later+or+.NET+Framework+4+and+later.&oq=Note+that+this+only+impacts+machines+running+Windows+7+and+later+or+.NET+Framework+4+and+later.



レジストリ[HKEY_LOCAL_MACHINE\…\Japanese\Eras]に未登録でも新元号に対応したい。
和暦
日本のカレンダーの元号の取り扱い

【外部リンク】
https://social.msdn.microsoft.com/Forums/ja-JP/bdf08a57-b7a3-4c25-b493-cd6b65496ccd/hkeylocalmachinejapaneseeras

【外部リンク】
https://social.msdn.microsoft.com/Forums/ja-JP/a93ec79d-69a5-4bb7-ae5d-a8aabfdcb9dd/systemglobalizationcultureinfo
和暦表示(System.Globalization.CultureInfo)について
回答
Question
サインインして投票
4
サインインして投票
Windows 7 以降に関しては、レジストリにて新元号を追加できるようになっています。

具体的には下記のエントリーです。この値は Windows Update でも更新されるそうです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras\

"1868 01 01" = "明治_明_Meiji_M"
"1912 07 30" = "大正_大_Taisho_T"
"1926 12 25" = "昭和_昭_Showa_S"
"1989 01 08" = "平成_平_Heisei_H"

【外部リンク】
https://blogs.technet.microsoft.com/jperablog/2018/04/02/%E6%96%B0%E5%85%83%E5%8F%B7%E3%81%B8%E3%81%AE%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88/
新元号への対応についてのアップデート
皆さまこんにちは。新元号への対応についてのアップデートをお伝えいたします。
新元号の発表時期等についてメディアでも取り上げられる機会が増え、皆さまから頂戴するお問い合わせも徐々に増えてまいりました。
私たちでは、政府とも連携を行いながら準備を進めており、引き続き新しい情報がございましたらこの Blog でお伝えしていく予定です。

● 新元号への対応レベルにつきまして

弊社製品の新元号への対応レベルとしては、大きく下記の 3 点があります。個々の製品やサービス、バージョンによって必要な対応レベルが異なるため、弊社ではどのような対応が必要か精査を急ピッチで実施しています。

- 日付フォーマットの変換
"日付フォーマットの変換" とは、主に西暦 ⇔ 和暦の変換処理を指します。
西暦 2019 年 5 月 1 日以降の日付は平成ではなく、新しい和暦に変換される必要があります。
Win32 や ATL / COM、.NET Framework に含まれる API、オブジェクトやメソッドによる日付フォーマットの変換が主となります。
この対応は 2019 年 4 月末までに完了できればよいというものではなく、新元号での変換が業務で必要となるまでに完了しなければならない点に注意してください。

- 合字への対応
"合字" は耳慣れない言葉ですが、「㍿」や「℡」のように 2 つ以上の文字を 1 文字で表現する記号を指します。
明治以降の元号は、Unicode 上に以下のような合字が存在しています。

㍻ (U+337B)
㍼ (U+337C)
㍽ (U+337D)
㍾ (U+337E)

弊社によるこれまでの調査では、和暦の表示等に合字を使用しているケースが相当数存在し、このようなシステムでは新元号に対しても同様に合字への対応が必要と考えられます。
新たな合字の作成には Unicode コンソーシアムでの文字の標準化作業を含み、そのスケジュールは標準化作業の進捗に大きく影響されます。また、「㍾」、「㍽」、「㍼」はシフト JIS (CP932) へのマッピングを行っておりますが、「㍻」についてはマッピングを行っていないことから、新元号についても同様に実施されない見込みです。
本 Blog で以前お伝えしております通り、新しい合字を正しく表示するには上記のような符号位置の決定とともにフォントの対応も必要不可欠です。

- 正規化

"正規化" とは、先にお話しいたしました合字と関連の深い対応になります。
例えば、"平成" と "㍻" を同様に扱う処理などがこの影響を受けます。検索キーワードとして元号が指定された際、合字を含むドキュメントを検索できる必要があり、このような処理ができるよう対応する必要があります。

● 弊社製品での今後の対応につきまして

弊社では新元号に対応する製品やそのバージョン、および更新の実施方法について検討を進めており、2018 年 6 月を目標に確定し公開できる予定です。

また、Windows 10 の次期機能アップデートにおいて、アプリケーション開発者様向けに日付フォーマット変換の開発や検証を目的とした API レベルの仮対応を実施する予定です。具体的な内容については、リリース時までの公開を予定しております。

加えて、4 月下旬にはパートナー様、開発者様向けの説明会を実施いたします。また、
Shift-JIS 対応に関するお問い合わせも複数頂戴しており、日程や詳細につきましては、別途ご案内いたします。

引き続き、新元号についての新しい情報は本 Blog にてお伝えしていきます。


【外部リンク】
https://www.yayoi-kk.co.jp/company/pressrelease/20181011-01.html
弥生、最新デスクトップアプリ「弥生 19 シリーズ」を 10月19日(金)に一斉発売
~「法令改正対応」と「継続的な機能強化」により会計の業務効率を改善~




--

注目の投稿

Shadowserver Foundation http://65.49.1.117/

Shadowserver Foundation port 14491 discarded for LINK-FRMWRK: NO ENTRY IN LOOKUP TABLE TO COMPLETE OPERATION, GigaEthernet2.0 Wistron Neweb ...

人気の投稿