2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-16 16:56:04 +00:00

UConv: add some language for compasspoint

git-svn-id: https://svn.fhem.de/fhem/trunk@12412 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
jpawlowski 2016-10-23 09:50:10 +00:00
parent f677a62870
commit 48b191c376

View File

@ -11,11 +11,89 @@ sub UConv_Initialize() {
package UConv;
sub round($;$) {
my ( $v, $n ) = @_;
$n = 1 if ( !$n );
return sprintf( "%.${n}f", $v );
}
####################
# Translations
my $pressure_trend_sym = { 0 => "=", 1 => "+", 2 => "-" };
my $pressure_trend_txt = {
"en" => { 0 => "steady", 1 => "rising", 2 => "falling" },
"de" => { 0 => "gleichbleibend", 1 => "steigend", 2 => "fallend" },
"nl" => { 0 => "stabiel", 1 => "stijgend", 2 => "dalend" },
"fr" => { 0 => "stable", 1 => "croissant", 2 => "décroissant" },
"pl" => { 0 => "stabilne", 1 => "rośnie", 2 => "spada" },
};
my $compasspoint_txt = {
"en" => (
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW'
),
"de" => (
'N', 'NNO', 'NO', 'ONO', 'O', 'OSO', 'SO', 'SSO',
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW'
),
"nl" => (
'N', 'NNO', 'NO', 'ONO', 'O', 'OZO', 'ZO', 'ZZO',
'Z', 'ZZW', 'ZW', 'WZW', 'W', 'WNW', 'NW', 'NNW'
),
"fr" => (
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
'S', 'SSO', 'SO', 'OSO', 'O', 'ONO', 'NO', 'NNO'
),
"pl" => (
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE',
'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW'
),
};
my $wdays_txt_en = {
"en" => {
'Mon' => 'Mon',
'Tue' => 'Tue',
'Wed' => 'Wed',
'Thu' => 'Thu',
'Fri' => 'Fri',
'Sat' => 'Sat',
'Sun' => 'Sun',
},
"de" => {
'Mon' => 'Mo',
'Tue' => 'Di',
'Wed' => 'Mi',
'Thu' => 'Do',
'Fri' => 'Fr',
'Sat' => 'Sa',
'Sun' => 'So',
},
"nl" => {
'Mon' => 'Maa',
'Tue' => 'Din',
'Wed' => 'Woe',
'Thu' => 'Don',
'Fri' => 'Vri',
'Sat' => 'Zat',
'Sun' => 'Zon',
},
"fr" => {
'Mon' => 'Lun',
'Tue' => 'Mar',
'Wed' => 'Mer',
'Thu' => 'Jeu',
'Fri' => 'Ven',
'Sat' => 'Sam',
'Sun' => 'Dim',
},
"pl" => {
'Mon' => 'Pon',
'Tue' => 'Wt',
'Wed' => 'Śr',
'Thu' => 'Czw',
'Fri' => 'Pt',
'Sat' => 'Sob',
'Sun' => 'Nie',
},
};
#################################
### Inner metric conversions
@ -169,30 +247,20 @@ sub ft2m($;$) {
### Angular conversions
###
# convert direction in degree to compass point short text
sub direction2compasspoint($;$) {
my ( $azimuth, $ext ) = @_;
# convert direction in degree to point of the compass
sub degrees2compasspoint($;$) {
my ( $azimuth, $lang ) = @_;
my @compasspointsExt = (
'North', 'North-Northeast', 'North-East', 'East-Northeast',
'East', 'East-Southeast', 'South-East', 'South-Southeast',
'South', 'South-Southwest', 'South-West', 'West-Southwest',
'West', 'West-Northwest', 'North-West', 'North-Northwest',
'North'
);
return @compasspointsExt[ sprintf( '%.0f', $azimuth / 22.5 ) ] if ($ext);
my @directions_txt_i18n;
my @compasspoints = (
'N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW',
'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW', 'N'
);
return @compasspoints[ sprintf( '%.0f', $azimuth / 22.5 ) ];
}
if ( $lang && defined( $compasspoint_txt->{$lang} ) ) {
@directions_txt_i18n = $compasspoint_txt->{$lang};
}
else {
@directions_txt_i18n = $compasspoint_txt->{en};
}
# convert direction in degree to compass point long text
sub direction2compasspointLong($) {
my ($azimuth) = @_;
return ( direction2compasspoint( $azimuth, 1 ) );
return @directions_txt_i18n[ int( ( ( $azimuth + 11.25 ) % 360 ) / 22.5 ) ];
}
#################################
@ -320,4 +388,13 @@ sub mph2bft($) {
return $v;
}
####################
# HELPER FUNCTIONS
sub round($;$) {
my ( $v, $n ) = @_;
$n = 1 if ( !$n );
return sprintf( "%.${n}f", $v );
}
1;