lib/when_exe/region/french.rb in when_exe-0.4.1 vs lib/when_exe/region/french.rb in when_exe-0.4.2
- old
+ new
@@ -1,56 +1,126 @@
-# -*- coding: utf-8 -*-
-=begin
- Copyright (C) 2011-2014 Takashi SUGA
-
- You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
-=end
-
-module When
- class BasicTypes::M17n
-
- French = [self, [
- "locale:[=en:, ja=ja:, alias]",
- "names:[French=]",
- "[FrenchRepublican=en:French_Republican_Calendar, フランス共和暦=ja:%%<フランス革命暦>]",
-
- [self,
- "names:[Month, 月=ja:%%<月_(暦)>]",
- "[Vendémiaire, ヴァンデミエール=, 葡萄月=]",
- "[Brumaire, ブリュメール=, 霧月= ]",
- "[Frimaire, フリメール=, 霜月= ]",
- "[Nivôse, ニヴォーズ=, 雪月= ]",
- "[Pluviôse, プリュヴィオーズ=, 雨月= ]",
- "[Ventôse, ヴァントーズ=, 風月= ]",
- "[Germinal, ジェルミナル=, 芽月= ]",
- "[Floréal, フロレアル=, 花月= ]",
- "[Prairial, プレリアル=, 牧草月=]",
- "[Messidor, メスィドール=, 収穫月=]",
- "[Thermidor, テルミドール=, 熱月= ]",
- "[Fructidor, フリュクティドール=, 果実月=]",
- "[Sansculottides, サン・キュロットの休日=, 予備日=]"
- ]
- ]]
- end
-
- module CalendarTypes
-
- #
- # French Calendar
- #
- FrenchRepublican = [SolarYearTableBased, {
- 'label' => 'French::FrenchRepublican',
- 'indices' => [
- When.Index('French::Month', {:unit =>13}),
- When::Coordinates::DefaultDayIndex
- ],
- 'origin_of_MSC' => -1791,
- 'epoch_in_CE' => +1792,
- 'cycle_offset' => Rational(1,2),
- 'time_basis' => '+00:09:20',
- 'rule_table' => {
- 365 => {'Length'=>[30] * 12 + [5]},
- 366 => {'Length'=>[30] * 12 + [6]}
- }
- }]
- end
-end
+# -*- coding: utf-8 -*-
+=begin
+ Copyright (C) 2011-2015 Takashi SUGA
+
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
+=end
+
+module When
+ class BasicTypes::M17n
+
+ French = [self, [
+ "locale:[=en:, ja=ja:, zh=zh:, alias]",
+ "names:[French=]",
+ "[FrenchRepublican=en:French_Republican_Calendar, フランス共和暦=ja:%%<フランス革命暦>, 法國共和曆]",
+ "[FrenchRepublican (Romme)=en:French_Republican_Calendar, フランス共和暦 (Romme)=ja:%%<フランス革命暦>, 法國共和曆 (Romme)=zh:%%<法國共和曆>]",
+ "[FrenchRepublican (Continuous)=en:French_Republican_Calendar, フランス共和暦 (Continuous)=ja:%%<フランス革命暦>, 法國共和曆 (Continuous)=zh:%%<法國共和曆>]",
+ "[FrenchRepublican (128)=en:French_Republican_Calendar, フランス共和暦 (128)=ja:%%<フランス革命暦>, 法國共和曆 (128)=zh:%%<法國共和曆>]",
+
+ [self,
+ "names:[month name=en:Month, 月の名前=ja:%%<月_(暦)>, 該月的名稱=, *alias:Month=]",
+ "[Vendémiaire, ヴァンデミエール=, 霞月, 葡萄月=]",
+ "[Brumaire, ブリュメール=, 霧月, 霧月= ]",
+ "[Frimaire, フリメール=, 霜月, 霜月= ]",
+ "[Nivôse, ニヴォーズ=, 雪月, 雪月= ]",
+ "[Pluviôse, プリュヴィオーズ=, 雨月, 雨月= ]",
+ "[Ventôse, ヴァントーズ=, 風月, 風月= ]",
+ "[Germinal, ジェルミナル=, 芽月, 芽月= ]",
+ "[Floréal, フロレアル=, 花月, 花月= ]",
+ "[Prairial, プレリアル=, 牧月, 牧草月=]",
+ "[Messidor, メスィドール=, 獲月, 収穫月=]",
+ "[Thermidor, テルミドール=, 熱月, 熱月= ]",
+ "[Fructidor, フリュクティドール=, 菓月, 果実月=]",
+ "[Sansculottides, サン・キュロットの休日=, 其他日子=, 予備日=]"
+ ]
+ ]]
+ end
+
+ module CalendarTypes
+
+ _rule_table400 = {
+ 'T' => {'Rule' =>(16...416).to_a.map {|y|
+ y % 400 == 0 ? 366 :
+ y % 100 == 0 ? 365 :
+ y % 4 == 0 ? 366 :
+ 365
+ }},
+ 365 => {'Length'=>[30] * 12 + [5]},
+ 366 => {'Length'=>[30] * 12 + [6]}
+ }
+
+ _rule_table128 = {
+ 'T' => {'Rule' =>(20...148).to_a.map {|y|
+ y % 128 == 0 ? 365 :
+ y % 4 == 0 ? 366 :
+ 365
+ }},
+ 365 => {'Length'=>[30] * 12 + [5]},
+ 366 => {'Length'=>[30] * 12 + [6]}
+ }
+
+ #
+ # French Calendar
+ #
+ FrenchRepublican = [SolarYearTableBased, {
+ 'label' => 'French::FrenchRepublican',
+ 'indices' => [
+ When.Index('French::Month', {:unit =>13}),
+ When::Coordinates::DefaultDayIndex
+ ],
+ 'origin_of_MSC' => -1791,
+ 'epoch_in_CE' => +1792,
+ 'cycle_offset' => Rational(1,2),
+ 'time_basis' => '+00:09:20',
+ 'rule_table' => {
+ 365 => {'Length'=>[30] * 12 + [5]},
+ 366 => {'Length'=>[30] * 12 + [6]}
+ }
+ }]
+
+ #
+ # FrenchRepublicanRomme
+ #
+ FrenchRepublicanRomme = [CyclicTableBased, {
+ 'label' => 'French::FrenchRepublican (Romme)',
+ 'origin_of_LSC' => 2381318,
+ 'origin_of_MSC' => 16,
+ 'before' => 'FrenchRepublican',
+ 'indices' => [
+ When.Index('French::Month', {:unit =>13}),
+ When::Coordinates::DefaultDayIndex
+ ],
+ 'rule_table' => _rule_table400
+ }]
+
+ #
+ # FrenchRepublicanContinuous
+ #
+ FrenchRepublicanContinuous = [CyclicTableBased, {
+ 'label' => 'French::FrenchRepublican (Continuous)',
+ 'origin_of_LSC' => 2380953,
+ 'origin_of_MSC' => 15,
+ 'before' => 'FrenchRepublican',
+ 'indices' => [
+ When.Index('French::Month', {:unit =>13}),
+ When::Coordinates::DefaultDayIndex
+ ],
+ 'rule_table' => _rule_table400
+ }]
+
+ #
+ # FrenchRepublicanTropical
+ #
+ FrenchRepublicanTropical = [CyclicTableBased, {
+ 'label' => 'French::FrenchRepublican (128)',
+ 'origin_of_LSC' => 2382779,
+ 'origin_of_MSC' => 20,
+ 'before' => 'FrenchRepublican',
+ 'indices' => [
+ When.Index('French::Month', {:unit =>13}),
+ When::Coordinates::DefaultDayIndex
+ ],
+ 'rule_table' => _rule_table128
+ }]
+
+ end
+end