diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyAbstractHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyAbstractHandler.java
index 63721e7ca..8807b8411 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyAbstractHandler.java
+++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyAbstractHandler.java
@@ -257,14 +257,13 @@ public abstract class WeatherCompanyAbstractHandler extends BaseThingHandler {
break;
}
} catch (TimeoutException e) {
- errorMsg = "TimeoutException: Call to Weather Company API timed out";
+ errorMsg = "@text/offline.comm-error-timeout";
} catch (ExecutionException e) {
errorMsg = String.format("ExecutionException: %s", e.getMessage());
} catch (InterruptedException e) {
errorMsg = String.format("InterruptedException: %s", e.getMessage());
}
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, errorMsg);
- logger.debug("{}", errorMsg);
return null;
}
diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java
index f147b0a26..079646432 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java
+++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyBridgeHandler.java
@@ -62,7 +62,8 @@ public class WeatherCompanyBridgeHandler extends BaseBridgeHandler {
if (rootcause instanceof HttpResponseException
&& rootcause.getMessage().contains("Authentication challenge without")) {
logger.debug("Bridge: HttpResponseException: API key is not valid");
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "API key is invalid");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "@text/offline.config-error-invalid-api-key");
} else {
logger.debug("Bridge: IOException trying to validate Api key: {}", e.getMessage());
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, e.getMessage());
diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java
index 4659d7dbf..13066bc34 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java
+++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyForecastHandler.java
@@ -128,7 +128,8 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler
case CONFIG_LOCATION_TYPE_POSTAL_CODE:
String postalCode = config.postalCode;
if (postalCode == null || postalCode.isBlank()) {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Postal code is not set");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "@text/offline.config-error-unset-postal-code");
} else {
locationQueryString = "&postalKey=" + postalCode.replace(" ", "");
validLocation = true;
@@ -137,7 +138,8 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler
case CONFIG_LOCATION_TYPE_GEOCODE:
String geocode = config.geocode;
if (geocode == null || geocode.isBlank()) {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Geocode is not set");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "@text/offline.config-error-unset-geocode");
} else {
locationQueryString = "&geocode=" + geocode.replace(" ", "");
validLocation = true;
@@ -146,14 +148,16 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler
case CONFIG_LOCATION_TYPE_IATA_CODE:
String iataCode = config.iataCode;
if (iataCode == null || iataCode.isBlank()) {
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "IATA code is not set");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "@text/offline.config-error-unset-iata-code");
} else {
locationQueryString = "&iataCode=" + iataCode.replace(" ", "").toUpperCase();
validLocation = true;
}
break;
default:
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Location Type is not set");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
+ "@text/offline.config-error-unset-location-type");
break;
}
return validLocation;
@@ -216,7 +220,8 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler
updateDaypartForecast(forecast.daypart);
} catch (JsonSyntaxException e) {
logger.debug("Handler: Error parsing daily forecast response object", e);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "Error parsing daily forecast");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
+ "@text/offline.comm-error-parsing-daily-forecast");
return;
}
}
@@ -244,7 +249,8 @@ public class WeatherCompanyForecastHandler extends WeatherCompanyAbstractHandler
logger.debug("Handler: Successfully parsed daypart forecast object");
} catch (JsonSyntaxException e) {
logger.debug("Handler: Error parsing daypart forecast object: {}", e.getMessage(), e);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "Error parsing daypart forecast");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
+ "@text/offline.comm-error-parsing-daypart-forecast");
return;
}
logger.debug("There are {} daypart forecast entries", dayparts.length);
diff --git a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java
index 6bd800032..ac209c815 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java
+++ b/bundles/org.openhab.binding.weathercompany/src/main/java/org/openhab/binding/weathercompany/internal/handler/WeatherCompanyObservationsHandler.java
@@ -145,7 +145,8 @@ public class WeatherCompanyObservationsHandler extends WeatherCompanyAbstractHan
updatePwsObservations(pwsObservations);
} catch (JsonSyntaxException e) {
logger.debug("Handler: Error parsing pws observations response object: {}", e.getMessage(), e);
- updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "Error parsing PWS observations");
+ updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
+ "@text/offline.comm-error-parsing-pws-forecast");
return;
}
}
diff --git a/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/binding/binding.xml b/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/binding/binding.xml
index 5e4f1aa9c..37946991d 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/binding/binding.xml
+++ b/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/binding/binding.xml
@@ -3,7 +3,7 @@
xmlns:binding="https://openhab.org/schemas/binding/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
- WeatherCompany Binding
- This is the binding for the WeatherCompany weather forecast API.
+ Weather Company Binding
+ This is the binding for the Weather Company weather forecast API.
diff --git a/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany.properties b/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany.properties
index 24e6a19f3..6af3a5140 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany.properties
+++ b/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany.properties
@@ -1,7 +1,258 @@
# binding
+
binding.weathercompany.name = Weather Company Binding
-binding.weathercompany.description = Weather forecast from The Weather Company
+binding.weathercompany.description = This is the binding for the Weather Company weather forecast API.
# thing types
-thing-type.weathercompany.weather.label = Weather
-thing-type.weathercompany.weather.description = Weather forecast from The Weather Company
+
+thing-type.weathercompany.account.label = Weather Company Account
+thing-type.weathercompany.account.description = Represents an account at the Weather Company service
+thing-type.weathercompany.weather-forecast.label = Weather Company Forecast
+thing-type.weathercompany.weather-forecast.description = Weather Company weather forecast
+thing-type.weathercompany.weather-forecast.group.forecastDay0.label = Weather Forecast Today
+thing-type.weathercompany.weather-forecast.group.forecastDay0.description = This is the weather forecast for today
+thing-type.weathercompany.weather-forecast.group.forecastDay0Day.label = Daytime Weather Forecast for Today
+thing-type.weathercompany.weather-forecast.group.forecastDay0Day.description = This is the daytime weather forecast for today
+thing-type.weathercompany.weather-forecast.group.forecastDay0Night.label = Night-time Weather Forecast for Tonight
+thing-type.weathercompany.weather-forecast.group.forecastDay0Night.description = This is the night-time weather forecast for tonight
+thing-type.weathercompany.weather-forecast.group.forecastDay1.label = Weather Forecast Tomorrow
+thing-type.weathercompany.weather-forecast.group.forecastDay1.description = This is the weather forecast for tomorrow
+thing-type.weathercompany.weather-forecast.group.forecastDay1Day.label = Daytime Weather Forecast for Tomorrow
+thing-type.weathercompany.weather-forecast.group.forecastDay1Day.description = This is the daytime weather forecast for tomorrow
+thing-type.weathercompany.weather-forecast.group.forecastDay1Night.label = Night-time Weather Forecast for Tomorrow
+thing-type.weathercompany.weather-forecast.group.forecastDay1Night.description = This is the night-time weather forecast for tomorrow night
+thing-type.weathercompany.weather-forecast.group.forecastDay2.label = Weather Forecast Day 2
+thing-type.weathercompany.weather-forecast.group.forecastDay2.description = This is the weather forecast in two days
+thing-type.weathercompany.weather-forecast.group.forecastDay2Day.label = Daytime Weather Forecast Day 2
+thing-type.weathercompany.weather-forecast.group.forecastDay2Day.description = This is the daytime weather forecast in 2 days
+thing-type.weathercompany.weather-forecast.group.forecastDay2Night.label = Night-time Weather Forecast Day 2
+thing-type.weathercompany.weather-forecast.group.forecastDay2Night.description = This is the night-time weather forecast in 2 days
+thing-type.weathercompany.weather-forecast.group.forecastDay3.label = Weather Forecast Day 3
+thing-type.weathercompany.weather-forecast.group.forecastDay3.description = This is the weather forecast in three days
+thing-type.weathercompany.weather-forecast.group.forecastDay3Day.label = Daytime Weather Forecast Day 3
+thing-type.weathercompany.weather-forecast.group.forecastDay3Day.description = This is the daytime weather forecast in 3 days
+thing-type.weathercompany.weather-forecast.group.forecastDay3Night.label = Night-time Weather Forecast Day 3
+thing-type.weathercompany.weather-forecast.group.forecastDay3Night.description = This is the night-time weather forecast in 3 days
+thing-type.weathercompany.weather-forecast.group.forecastDay4.label = Weather Forecast Day 4
+thing-type.weathercompany.weather-forecast.group.forecastDay4.description = This is the weather forecast in four days
+thing-type.weathercompany.weather-forecast.group.forecastDay4Day.label = Daytime Weather Forecast Day 3
+thing-type.weathercompany.weather-forecast.group.forecastDay4Day.description = This is the daytime weather forecast in 4 days
+thing-type.weathercompany.weather-forecast.group.forecastDay4Night.label = Night-time Weather Forecast Day 4
+thing-type.weathercompany.weather-forecast.group.forecastDay4Night.description = This is the night-time weather forecast in 4 days
+thing-type.weathercompany.weather-forecast.group.forecastDay5.label = Weather Forecast Day 5
+thing-type.weathercompany.weather-forecast.group.forecastDay5.description = This is the weather forecast in five days
+thing-type.weathercompany.weather-forecast.group.forecastDay5Day.label = Daytime Weather Forecast Day 5
+thing-type.weathercompany.weather-forecast.group.forecastDay5Day.description = This is the daytime weather forecast in 5 days
+thing-type.weathercompany.weather-forecast.group.forecastDay5Night.label = Night-time Weather Forecast Day 5
+thing-type.weathercompany.weather-forecast.group.forecastDay5Night.description = This is the night-time weather forecast in 5 days
+thing-type.weathercompany.weather-observations.label = Weather Company Observations
+thing-type.weathercompany.weather-observations.description = Current observations from Personal Weather Station
+
+# thing types config
+
+thing-type.config.weathercompany.account.apiKey.label = API Key
+thing-type.config.weathercompany.account.apiKey.description = Enter the API key
+thing-type.config.weathercompany.weather-forecast.geocode.label = Location
+thing-type.config.weathercompany.weather-forecast.geocode.description = The location of this weather forecast. Coordinates as ,[,]. Example: "52.5200066,13.4049540" for Berlin.
+thing-type.config.weathercompany.weather-forecast.iataCode.label = IATA Code
+thing-type.config.weathercompany.weather-forecast.iataCode.description = IATA airport code (e.g. BWI)
+thing-type.config.weathercompany.weather-forecast.language.label = Language
+thing-type.config.weathercompany.weather-forecast.language.description = Language to be used by the Weather Company service
+thing-type.config.weathercompany.weather-forecast.language.option.sq-AL = Albanian - (Albania)
+thing-type.config.weathercompany.weather-forecast.language.option.ar-AE = Arabic - (United Arab Emirates)
+thing-type.config.weathercompany.weather-forecast.language.option.az-AZ = Azerbaijani - (Azerbaijan)
+thing-type.config.weathercompany.weather-forecast.language.option.bn-BD = Bengali, Bangla - (Bangladesh)
+thing-type.config.weathercompany.weather-forecast.language.option.bn-IN = Bengali, Bangla - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.bs-BA = Bosnian - (Bosnia and Herzegovina)
+thing-type.config.weathercompany.weather-forecast.language.option.bg-BG = Bulgarian - (Bulgaria)
+thing-type.config.weathercompany.weather-forecast.language.option.ca-ES = Catalan - (Spain)
+thing-type.config.weathercompany.weather-forecast.language.option.zh-CN = Chinese - (China)
+thing-type.config.weathercompany.weather-forecast.language.option.zh-HK = Chinese - (Hong Kong)
+thing-type.config.weathercompany.weather-forecast.language.option.zh-TW = Chinese - (Taiwan)
+thing-type.config.weathercompany.weather-forecast.language.option.hr-HR = Croatian - (Croatia)
+thing-type.config.weathercompany.weather-forecast.language.option.cs-CZ = Czech - (Czechia)
+thing-type.config.weathercompany.weather-forecast.language.option.da-DK = Danish - (Denmark)
+thing-type.config.weathercompany.weather-forecast.language.option.nl-NL = Dutch - (Netherlands)
+thing-type.config.weathercompany.weather-forecast.language.option.en-GB = English (Great Britain)
+thing-type.config.weathercompany.weather-forecast.language.option.en-IN = English - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.en-US = English - (United States of America)
+thing-type.config.weathercompany.weather-forecast.language.option.et-EE = Estonian - (Estonia)
+thing-type.config.weathercompany.weather-forecast.language.option.fi-FI = Finnish - (Finland)
+thing-type.config.weathercompany.weather-forecast.language.option.fr-CA = French - (Canada)
+thing-type.config.weathercompany.weather-forecast.language.option.fr-FR = French - (France)
+thing-type.config.weathercompany.weather-forecast.language.option.ka-GE = Georgian - (Georgia)
+thing-type.config.weathercompany.weather-forecast.language.option.de-DE = German - (Germany)
+thing-type.config.weathercompany.weather-forecast.language.option.el-GR = Greek (modern) - (Greece)
+thing-type.config.weathercompany.weather-forecast.language.option.gu-IN = Gujarati - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.he-IL = Hebrew (modern) - (Israel)
+thing-type.config.weathercompany.weather-forecast.language.option.iw-IL = Hebrew - (Israel)
+thing-type.config.weathercompany.weather-forecast.language.option.hi-IN = Hindi - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.hu-HU = Hungarian - (Hungary)
+thing-type.config.weathercompany.weather-forecast.language.option.is-IS = Icelandic - (Iceland)
+thing-type.config.weathercompany.weather-forecast.language.option.in-ID = Indonesian - (Indonesia)
+thing-type.config.weathercompany.weather-forecast.language.option.it-IT = Italian - (Italy)
+thing-type.config.weathercompany.weather-forecast.language.option.ja-JP = Japanese - (Japan)
+thing-type.config.weathercompany.weather-forecast.language.option.jv-ID = Javanese - (Indonesia)
+thing-type.config.weathercompany.weather-forecast.language.option.kn-IN = Kannada - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.kk-KZ = Kazakh - (Kazakhstan)
+thing-type.config.weathercompany.weather-forecast.language.option.ko-KR = Korean - (South Korea)
+thing-type.config.weathercompany.weather-forecast.language.option.lv-LV = Latvian - (Latvia)
+thing-type.config.weathercompany.weather-forecast.language.option.lt-LT = Lithuanian - (Lithuania)
+thing-type.config.weathercompany.weather-forecast.language.option.mk-MK = Macedonian - (Macedonia)
+thing-type.config.weathercompany.weather-forecast.language.option.ms-MY = Malay - (Malaysia)
+thing-type.config.weathercompany.weather-forecast.language.option.mn-MN = Mongolian - (Mongolia)
+thing-type.config.weathercompany.weather-forecast.language.option.no-NO = Norwegian - (Norway)
+thing-type.config.weathercompany.weather-forecast.language.option.fa-IR = Persian (Farsi) - (Iran)
+thing-type.config.weathercompany.weather-forecast.language.option.pl-PL = Polish - (Poland)
+thing-type.config.weathercompany.weather-forecast.language.option.pt-BR = Portuguese - (Brazil)
+thing-type.config.weathercompany.weather-forecast.language.option.pt-PT = Portuguese - (Portugal)
+thing-type.config.weathercompany.weather-forecast.language.option.ro-RO = Romanian - (Romania)
+thing-type.config.weathercompany.weather-forecast.language.option.ru-RU = Russian - (Russia)
+thing-type.config.weathercompany.weather-forecast.language.option.sr-BA = Serbian - (Bosnia and Herzegovina)
+thing-type.config.weathercompany.weather-forecast.language.option.sr-ME = Serbian - (Montenegro)
+thing-type.config.weathercompany.weather-forecast.language.option.sr-RS = Serbian - (Serbia)
+thing-type.config.weathercompany.weather-forecast.language.option.si-LK = Sinhalese, Sinhala - (Sri Lanka)
+thing-type.config.weathercompany.weather-forecast.language.option.sk-SK = Slovak - (Slovakia)
+thing-type.config.weathercompany.weather-forecast.language.option.sl-SI = Slovenian - (Slovenia)
+thing-type.config.weathercompany.weather-forecast.language.option.es-AR = Spanish - (Argentina)
+thing-type.config.weathercompany.weather-forecast.language.option.es-ES = Spanish - (Spain)
+thing-type.config.weathercompany.weather-forecast.language.option.es-LA = Spanish - (Latin America)
+thing-type.config.weathercompany.weather-forecast.language.option.es-MX = Spanish - (Mexico)
+thing-type.config.weathercompany.weather-forecast.language.option.es-UN = Spanish - (International)
+thing-type.config.weathercompany.weather-forecast.language.option.es-US = Spanish - (United States of America)
+thing-type.config.weathercompany.weather-forecast.language.option.sw-KE = Swahili - (Kenya)
+thing-type.config.weathercompany.weather-forecast.language.option.sv-SE = Swedish - (Sweden)
+thing-type.config.weathercompany.weather-forecast.language.option.tl-PH = Tagalog - (Philippines)
+thing-type.config.weathercompany.weather-forecast.language.option.tg-TJ = Tajik - (Tajikistan)
+thing-type.config.weathercompany.weather-forecast.language.option.ta-IN = Tamil - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.ta-LK = Tamil - (Sri Lanka)
+thing-type.config.weathercompany.weather-forecast.language.option.te-IN = Telugu - (India)
+thing-type.config.weathercompany.weather-forecast.language.option.th-TH = Thai - (Thailand)
+thing-type.config.weathercompany.weather-forecast.language.option.tr-TR = Turkish - (Turkey)
+thing-type.config.weathercompany.weather-forecast.language.option.tk-TM = Turkmen - (Turkmenistan)
+thing-type.config.weathercompany.weather-forecast.language.option.uk-UA = Ukrainian - (Ukraine)
+thing-type.config.weathercompany.weather-forecast.language.option.ur-PK = Urdu - (Pakistan)
+thing-type.config.weathercompany.weather-forecast.language.option.uz-UZ = Uzbek - (Uzbekistan)
+thing-type.config.weathercompany.weather-forecast.language.option.vi-VN = Vietnamese - (Viet Nam)
+thing-type.config.weathercompany.weather-forecast.locationType.label = Location Type
+thing-type.config.weathercompany.weather-forecast.locationType.description = Location type (Postal Code, Geocode)
+thing-type.config.weathercompany.weather-forecast.locationType.option.postalCode = Postal Code
+thing-type.config.weathercompany.weather-forecast.locationType.option.geocode = Geocode
+thing-type.config.weathercompany.weather-forecast.locationType.option.iataCode = IATA Code
+thing-type.config.weathercompany.weather-forecast.postalCode.label = Postal code
+thing-type.config.weathercompany.weather-forecast.postalCode.description = Postal code of form postal:country (e.g. 10001:US)
+thing-type.config.weathercompany.weather-forecast.refreshInterval.label = Refresh interval
+thing-type.config.weathercompany.weather-forecast.refreshInterval.description = Specifies the refresh interval in minutes
+thing-type.config.weathercompany.weather-observations.pwsStationId.label = PWS Station ID
+thing-type.config.weathercompany.weather-observations.pwsStationId.description = ID of your Personal Weather Station (e.g. KILCHICA52)
+thing-type.config.weathercompany.weather-observations.refreshInterval.label = Refresh interval
+thing-type.config.weathercompany.weather-observations.refreshInterval.description = Specifies the refresh interval in minutes
+
+# channel group types
+
+channel-group-type.weathercompany.forecastDay.label = Weather Forecast Day
+channel-group-type.weathercompany.forecastDay.description = This is the weather forecast
+channel-group-type.weathercompany.forecastDay.channel.temperatureMax.label = Maximum Temperature
+channel-group-type.weathercompany.forecastDay.channel.temperatureMin.label = Minimum Temperature
+channel-group-type.weathercompany.forecastDaypart.label = Weather Forecast Day and Night
+channel-group-type.weathercompany.forecastDaypart.description = This is the weather forecast for day and night
+channel-group-type.weathercompany.forecastDaypart.channel.temperature.label = Temperature
+channel-group-type.weathercompany.forecastDaypart.channel.temperatureHeatIndex.label = Heat Index
+channel-group-type.weathercompany.forecastDaypart.channel.temperatureWindChill.label = Wind Chill
+
+# channel types
+
+channel-type.weathercompany.cloudCover.label = Cloud Cover
+channel-type.weathercompany.cloudCover.description = Cloud cover
+channel-type.weathercompany.country.label = Country
+channel-type.weathercompany.country.description = Country where PWS is located
+channel-type.weathercompany.dayOfWeek.label = Day of Week
+channel-type.weathercompany.dayOfWeek.description = Day of week
+channel-type.weathercompany.dayOrNight.label = Day or Night Name
+channel-type.weathercompany.dayOrNight.description = Day or night
+channel-type.weathercompany.daypartName.label = Daypart Name
+channel-type.weathercompany.daypartName.description = Daypart name
+channel-type.weathercompany.elevation.label = Weather Station Elevation
+channel-type.weathercompany.elevation.description = Elevation above ground of weather station
+channel-type.weathercompany.expirationTimeLocal.label = Expiration Time
+channel-type.weathercompany.expirationTimeLocal.description = Expiration time
+channel-type.weathercompany.iconCode.label = Icon Code
+channel-type.weathercompany.iconCode.description = Icon code
+channel-type.weathercompany.iconCodeExtend.label = Icon Code Extend
+channel-type.weathercompany.iconCodeExtend.description = Icon code extend
+channel-type.weathercompany.iconImage.label = Icon Image
+channel-type.weathercompany.iconImage.description = Icon image
+channel-type.weathercompany.location.label = Weather Station Location
+channel-type.weathercompany.location.description = Latitude and longitude of weather station
+channel-type.weathercompany.narrative.label = Narrative
+channel-type.weathercompany.narrative.description = The narrative forecast for the 24-hour period
+channel-type.weathercompany.neighborhood.label = Neighborhood
+channel-type.weathercompany.neighborhood.description = Neighborhood
+channel-type.weathercompany.observationTimeLocal.label = Observation Time
+channel-type.weathercompany.observationTimeLocal.description = Local time when conditions were observed
+channel-type.weathercompany.precipitationChance.label = Precipitation Chance
+channel-type.weathercompany.precipitationChance.description = Chance of precipitation
+channel-type.weathercompany.precipitationRain.label = Precipitation Rain
+channel-type.weathercompany.precipitationRain.description = Forecasted measurable liquid precipitation during 24 hour period
+channel-type.weathercompany.precipitationRate.label = Precipitation Rate
+channel-type.weathercompany.precipitationRate.description = Precipitation rate
+channel-type.weathercompany.precipitationSnow.label = Precipitation Snow
+channel-type.weathercompany.precipitationSnow.description = Forecasted measurable snow precipitation during 24 hour period
+channel-type.weathercompany.precipitationTotal.label = Precipitation Total
+channel-type.weathercompany.precipitationTotal.description = Precipitation total
+channel-type.weathercompany.precipitationType.label = Precipitation Type
+channel-type.weathercompany.precipitationType.description = Precipitation type
+channel-type.weathercompany.pressure.label = Barometric Pressure
+channel-type.weathercompany.pressure.description = Barometric Pressure
+channel-type.weathercompany.qcStatus.label = QC Status
+channel-type.weathercompany.qcStatus.description = QC status
+channel-type.weathercompany.qualifierCode.label = Qualifier Code
+channel-type.weathercompany.qualifierCode.description = Qualifier code
+channel-type.weathercompany.qualifierPhrase.label = Qualifier Phrase
+channel-type.weathercompany.qualifierPhrase.description = Qualifier phrase
+channel-type.weathercompany.relativeHumidity.label = Relative Humidity
+channel-type.weathercompany.relativeHumidity.description = Forecasted relative humidity
+channel-type.weathercompany.snowRange.label = Snow Range
+channel-type.weathercompany.snowRange.description = Snow range
+channel-type.weathercompany.softwareType.label = Software Type
+channel-type.weathercompany.softwareType.description = Software type
+channel-type.weathercompany.solarRadiation.label = Solar Radiation
+channel-type.weathercompany.solarRadiation.description = Solar radiation
+channel-type.weathercompany.stationId.label = Station Id
+channel-type.weathercompany.stationId.description = Station Id
+channel-type.weathercompany.temperature.label = Temperature
+channel-type.weathercompany.temperature.description = Forecasted temperature
+channel-type.weathercompany.thunderCategory.label = Thunder Category
+channel-type.weathercompany.thunderCategory.description = Thunder category
+channel-type.weathercompany.thunderIndex.label = Thunder Index
+channel-type.weathercompany.thunderIndex.description = Thunder index
+channel-type.weathercompany.uvDescription.label = UV Description
+channel-type.weathercompany.uvDescription.description = UV description
+channel-type.weathercompany.uvIndex.label = UV Index
+channel-type.weathercompany.uvIndex.description = UV index
+channel-type.weathercompany.validTimeLocal.label = Valid Time
+channel-type.weathercompany.validTimeLocal.description = Time forecast is valid in local apparent time
+channel-type.weathercompany.windDirection.label = Wind Direction
+channel-type.weathercompany.windDirection.description = Wind direction
+channel-type.weathercompany.windDirectionCardinal.label = Wind Direction Cardinal
+channel-type.weathercompany.windDirectionCardinal.description = Wind direction cardinal
+channel-type.weathercompany.windPhrase.label = Wind Phrase
+channel-type.weathercompany.windPhrase.description = Wind phrase
+channel-type.weathercompany.windSpeed.label = Wind Speed
+channel-type.weathercompany.windSpeed.description = Wind speed
+channel-type.weathercompany.wxPhraseLong.label = Wx Phrase Long
+channel-type.weathercompany.wxPhraseLong.description = Wx phrase long
+channel-type.weathercompany.wxPhraseShort.label = Wx Phrase Short
+channel-type.weathercompany.wxPhraseShort.description = Wx phrase short
+
+# Thing status descriptions
+
+offline.config-error-invalid-api-key = API key is invalid
+offline.config-error-unset-postal-code = Postal code is not set
+offline.config-error-unset-geocode = Geocode is not set
+offline.config-error-unset-iata-code = IATA code is not set
+offline.config-error-unset-location-type = Location Type is not set
+offline.comm-error-timeout = TimeoutException: Call to Weather Company API timed out
+offline.comm-error-parsing-daily-forecast = Error parsing daily forecast
+offline.comm-error-parsing-daypart-forecast = Error parsing daypart forecast
+offline.comm-error-parsing-pws-forecast = Error parsing PWS observations
diff --git a/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany_fr.properties b/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany_fr.properties
index 9b48385c8..d1bb30f7c 100644
--- a/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany_fr.properties
+++ b/bundles/org.openhab.binding.weathercompany/src/main/resources/OH-INF/i18n/weathercompany_fr.properties
@@ -3,5 +3,5 @@ binding.weathercompany.name = Extension Weather Company
binding.weathercompany.description = Prévisions météo de The Weather Company
# thing types
-thing-type.weathercompany.weather.label = Météo
-thing-type.weathercompany.weather.description = Prévisions météo de The Weather Company
+thing-type.weathercompany.weather-forecast.label = Météo
+thing-type.weathercompany.weather-forecast.description = Prévisions météo de The Weather Company