Refactor language initialization and attribute handling
Improved the language initialization logic by replacing the experimental `given/when` construct with a more standard `if/elsif` structure. This change enhances code readability and maintainability, making it easier to follow the flow of language assignments. Additionally, refactored attribute handling in the `Attr` subroutine by streamlining the conditions, removing unnecessary `given/when` usage, and maintaining clarity in the logic for setting and deleting forecasts and alerts. These changes help reduce complexity and improve consistency throughout the codebase.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
UPD 2025-02-05_05:56:41 25899 FHEM/59_Weather.pm
|
UPD 2025-02-05_05:56:41 25899 FHEM/59_Weather.pm
|
||||||
UPD 2025-02-04_21:08:26 34419 lib/FHEM/Core/Weather.pm
|
UPD 2025-10-14_06:51:10 34175 lib/FHEM/Core/Weather.pm
|
||||||
UPD 2025-02-05_06:38:34 33780 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
UPD 2025-02-05_06:38:34 33780 lib/FHEM/APIs/Weather/OpenWeatherMapAPI.pm
|
||||||
UPD 2025-02-04_21:08:26 38751 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
UPD 2025-02-04_21:08:26 38751 lib/FHEM/APIs/Weather/wundergroundAPI.pm
|
||||||
|
@@ -41,10 +41,7 @@ eval { use Time::HiRes qw /gettimeofday/; 1 }
|
|||||||
eval { use Readonly; 1 }
|
eval { use Readonly; 1 }
|
||||||
or $missingModul .= "libreadonly-perl ";
|
or $missingModul .= "libreadonly-perl ";
|
||||||
|
|
||||||
#use Time::HiRes qw(gettimeofday);
|
#use experimental qw /switch/;
|
||||||
use experimental qw /switch/;
|
|
||||||
|
|
||||||
#use Readonly;
|
|
||||||
|
|
||||||
use FHEM::Meta;
|
use FHEM::Meta;
|
||||||
|
|
||||||
@@ -224,48 +221,48 @@ sub _LanguageInitialize {
|
|||||||
|
|
||||||
my $lang = shift;
|
my $lang = shift;
|
||||||
|
|
||||||
given ($lang) {
|
if ( $lang eq 'de' ) {
|
||||||
when ('de') {
|
|
||||||
%wdays_txt_i18n = %wdays_txt_de;
|
%wdays_txt_i18n = %wdays_txt_de;
|
||||||
@directions_txt_i18n = @directions_txt_de;
|
@directions_txt_i18n = @directions_txt_de;
|
||||||
%pressure_trend_txt_i18n = %pressure_trend_txt_de;
|
%pressure_trend_txt_i18n = %pressure_trend_txt_de;
|
||||||
%status_items_txt_i18n = %status_items_txt_de;
|
%status_items_txt_i18n = %status_items_txt_de;
|
||||||
}
|
}
|
||||||
|
elsif ( $lang eq 'nl' ) {
|
||||||
when ('nl') {
|
|
||||||
%wdays_txt_i18n = %wdays_txt_nl;
|
%wdays_txt_i18n = %wdays_txt_nl;
|
||||||
@directions_txt_i18n = @directions_txt_nl;
|
@directions_txt_i18n = @directions_txt_nl;
|
||||||
%pressure_trend_txt_i18n = %pressure_trend_txt_nl;
|
%pressure_trend_txt_i18n = %pressure_trend_txt_nl;
|
||||||
%status_items_txt_i18n = %status_items_txt_nl;
|
%status_items_txt_i18n = %status_items_txt_nl;
|
||||||
}
|
}
|
||||||
|
elsif ( $lang eq 'fr' ) {
|
||||||
|
|
||||||
when ('fr') {
|
}
|
||||||
|
elsif ( $lang eq 'fr' ) {
|
||||||
%wdays_txt_i18n = %wdays_txt_fr;
|
%wdays_txt_i18n = %wdays_txt_fr;
|
||||||
@directions_txt_i18n = @directions_txt_fr;
|
@directions_txt_i18n = @directions_txt_fr;
|
||||||
%pressure_trend_txt_i18n = %pressure_trend_txt_fr;
|
%pressure_trend_txt_i18n = %pressure_trend_txt_fr;
|
||||||
%status_items_txt_i18n = %status_items_txt_fr;
|
%status_items_txt_i18n = %status_items_txt_fr;
|
||||||
}
|
|
||||||
|
|
||||||
when ('pl') {
|
}
|
||||||
|
elsif ( $lang eq 'pl' ) {
|
||||||
%wdays_txt_i18n = %wdays_txt_pl;
|
%wdays_txt_i18n = %wdays_txt_pl;
|
||||||
@directions_txt_i18n = @directions_txt_pl;
|
@directions_txt_i18n = @directions_txt_pl;
|
||||||
%pressure_trend_txt_i18n = %pressure_trend_txt_pl;
|
%pressure_trend_txt_i18n = %pressure_trend_txt_pl;
|
||||||
%status_items_txt_i18n = %status_items_txt_pl;
|
%status_items_txt_i18n = %status_items_txt_pl;
|
||||||
}
|
|
||||||
|
|
||||||
when ('it') {
|
}
|
||||||
|
elsif ( $lang eq 'it' ) {
|
||||||
%wdays_txt_i18n = %wdays_txt_it;
|
%wdays_txt_i18n = %wdays_txt_it;
|
||||||
@directions_txt_i18n = @directions_txt_it;
|
@directions_txt_i18n = @directions_txt_it;
|
||||||
%pressure_trend_txt_i18n = %pressure_trend_txt_it;
|
%pressure_trend_txt_i18n = %pressure_trend_txt_it;
|
||||||
%status_items_txt_i18n = %status_items_txt_it;
|
%status_items_txt_i18n = %status_items_txt_it;
|
||||||
}
|
|
||||||
|
|
||||||
default {
|
}
|
||||||
|
else {
|
||||||
%wdays_txt_i18n = %wdays_txt_en;
|
%wdays_txt_i18n = %wdays_txt_en;
|
||||||
@directions_txt_i18n = @directions_txt_en;
|
@directions_txt_i18n = @directions_txt_en;
|
||||||
%pressure_trend_txt_i18n = %pressure_trend_txt_en;
|
%pressure_trend_txt_i18n = %pressure_trend_txt_en;
|
||||||
%status_items_txt_i18n = %status_items_txt_en;
|
%status_items_txt_i18n = %status_items_txt_en;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -862,8 +859,7 @@ sub Attr {
|
|||||||
my ( $cmd, $name, $attrName, $AttrVal ) = @_;
|
my ( $cmd, $name, $attrName, $AttrVal ) = @_;
|
||||||
my $hash = $::defs{$name};
|
my $hash = $::defs{$name};
|
||||||
|
|
||||||
given ($attrName) {
|
if ( $attrName eq 'forecast' ) {
|
||||||
when ('forecast') {
|
|
||||||
if ( $cmd eq 'set' ) {
|
if ( $cmd eq 'set' ) {
|
||||||
$hash->{fhem}->{api}->setForecast($AttrVal);
|
$hash->{fhem}->{api}->setForecast($AttrVal);
|
||||||
}
|
}
|
||||||
@@ -874,13 +870,11 @@ sub Attr {
|
|||||||
::InternalTimer( gettimeofday() + 0.5,
|
::InternalTimer( gettimeofday() + 0.5,
|
||||||
\&FHEM::Core::Weather::DeleteForecastreadings, $hash );
|
\&FHEM::Core::Weather::DeleteForecastreadings, $hash );
|
||||||
}
|
}
|
||||||
|
elsif ('forecastLimit') {
|
||||||
when ('forecastLimit') {
|
|
||||||
::InternalTimer( gettimeofday() + 0.5,
|
::InternalTimer( gettimeofday() + 0.5,
|
||||||
\&FHEM::Core::Weather::DeleteForecastreadings, $hash );
|
\&FHEM::Core::Weather::DeleteForecastreadings, $hash );
|
||||||
}
|
}
|
||||||
|
elsif ('alerts') {
|
||||||
when ('alerts') {
|
|
||||||
if ( $cmd eq 'set' ) {
|
if ( $cmd eq 'set' ) {
|
||||||
$hash->{fhem}->{api}->setAlerts($AttrVal);
|
$hash->{fhem}->{api}->setAlerts($AttrVal);
|
||||||
}
|
}
|
||||||
@@ -891,7 +885,6 @@ sub Attr {
|
|||||||
::InternalTimer( gettimeofday() + 0.5,
|
::InternalTimer( gettimeofday() + 0.5,
|
||||||
\&FHEM::Core::Weather::DeleteAlertsreadings, $hash );
|
\&FHEM::Core::Weather::DeleteAlertsreadings, $hash );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user