From 16d62595b11c81b67f0cd184f3bb02cf9138cae3 Mon Sep 17 00:00:00 2001 From: YongGeol Jung Date: Thu, 2 Mar 2023 03:40:14 -0800 Subject: [PATCH 01/16] fixup! Shorten NotifySwap path for offscreen rendering Create |CompositorObserverEfl| to get |NotifySwap| message for WRT offscreen mode. Change-Id: Ie2b75929e2d5c386f13838352bdaf859aae04ce7 --- wrt/src/browser/wrt_native_window.cc | 5 +++++ wrt/src/browser/wrt_native_window.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/wrt/src/browser/wrt_native_window.cc b/wrt/src/browser/wrt_native_window.cc index aebad9d..7295c7b 100755 --- a/wrt/src/browser/wrt_native_window.cc +++ b/wrt/src/browser/wrt_native_window.cc @@ -27,6 +27,7 @@ #include "electron/shell/common/options_switches.h" #include "tizen_src/chromium_impl/efl/window_factory.h" #include "tizen_src/chromium_impl/tizen/system_info.h" +#include "ui/compositor/compositor_observer_efl.h" #include "ui/display/screen.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size.h" @@ -671,6 +672,10 @@ void WRTNativeWindow::SetWebContents(content::WebContents* web_contents) { EWebAccessibilityUtil::GetInstance()->SetEWebAccessibility( wrt_accessibility_.get()); #endif + if (!use_onscreen_rendering) { + compositor_observer_ = std::make_unique( + host->compositor(), web_contents_); + } } content::WebContents* WRTNativeWindow::GetWebContents() { diff --git a/wrt/src/browser/wrt_native_window.h b/wrt/src/browser/wrt_native_window.h index f49195c..0331df3 100755 --- a/wrt/src/browser/wrt_native_window.h +++ b/wrt/src/browser/wrt_native_window.h @@ -20,6 +20,10 @@ class WebContentsViewAura; } // namespace content +namespace ui { +class CompositorObserver; +} + class EWebAccessibility; typedef struct _Ecore_Evas Ecore_Evas; typedef struct _Eo_Opaque Evas_Object; @@ -207,6 +211,7 @@ class WRTNativeWindow : public electron::NativeWindow { #if !defined(WRT_JS_BRINGUP) std::unique_ptr wrt_accessibility_; #endif + std::unique_ptr compositor_observer_; }; } // namespace wrt -- 2.7.4 From 7331a884d7f18045402cff3a470c6b8cfdc0313d Mon Sep 17 00:00:00 2001 From: uzair Date: Tue, 21 Feb 2023 14:41:24 +0530 Subject: [PATCH 02/16] [Offscreen] Fix for black screen on static pages Below change makes sure ensure all drawing to the context has been flushed and submitted to graphics driver before shown on screen. Change-Id: Ia4b751b211bd66c9be04328b947e355b0c274c6b Signed-off-by: uzair --- .../viz/service/display_embedder/skia_output_device_offscreen.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/viz/service/display_embedder/skia_output_device_offscreen.cc b/components/viz/service/display_embedder/skia_output_device_offscreen.cc index 6aa7a45..29434dc 100644 --- a/components/viz/service/display_embedder/skia_output_device_offscreen.cc +++ b/components/viz/service/display_embedder/skia_output_device_offscreen.cc @@ -74,6 +74,9 @@ void SkiaOutputDeviceOffscreen::SwapBuffers(BufferPresentedCallback feedback, StartSwapBuffers(std::move(feedback)); FinishSwapBuffers(gfx::SwapCompletionResult(gfx::SwapResult::SWAP_ACK), gfx::Size(size_.width(), size_.height()), std::move(frame)); +#if BUILDFLAG(IS_TIZEN) + context_state_->gr_context()->flushAndSubmit(true); +#endif } void SkiaOutputDeviceOffscreen::PostSubBuffer(const gfx::Rect& rect, -- 2.7.4 From 737cc783a1895b28bd1f9f64604245f8ebbd7c06 Mon Sep 17 00:00:00 2001 From: DongHyun Song Date: Fri, 3 Mar 2023 16:36:31 +0900 Subject: [PATCH 03/16] [WRTjs][VD] Remove prefetching xwalk extension feature Prefetching is almost ineffective to load webapp, compared to its complicated logic and heavy performing of DB file. Change-Id: I1d0cd3130054e68d6b67e7035be2112c7e3365cb Signed-off-by: DongHyun Song --- wrt/src/app/tv/wrt_main_delegate_tv.cc | 1 - .../browser/tv/xwalk_extension_manager_tv.cc | 89 ---------------------- .../browser/tv/xwalk_extension_manager_tv.h | 7 -- .../browser/xwalk_extension_manager.h | 1 - 4 files changed, 98 deletions(-) diff --git a/wrt/src/app/tv/wrt_main_delegate_tv.cc b/wrt/src/app/tv/wrt_main_delegate_tv.cc index a0117a7..aaba6c0 100644 --- a/wrt/src/app/tv/wrt_main_delegate_tv.cc +++ b/wrt/src/app/tv/wrt_main_delegate_tv.cc @@ -198,7 +198,6 @@ void WRTMainDelegateTV::CreateWorkers() { std::ignore = GetEncryptedFileHandler(); } NativeWebRuntimeDelegateTV::GetInstance().BuildPrivilegeCache(); - XWalkExtensionManager::GetInstance()->PrefetchExtensions(); GroupZygoteProcess(false); reallaunch_mutex.unlock(); }); diff --git a/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.cc b/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.cc index 0e2e2ff..3bdfea1 100644 --- a/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.cc +++ b/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.cc @@ -16,9 +16,7 @@ #include "wrt/src/browser/tv/input_device_manager.h" #include "wrt/src/browser/tv/native_web_runtime_delegate_tv.h" #include "wrt/src/browser/tv/tv_window_manager.h" -#include "wrt/src/browser/tv/widget_state.h" #include "wrt/src/browser/tv/wrt_native_window_tv.h" -#include "wrt/src/common/app_db.h" #include "wrt/src/common/constants.h" #ifndef XWALK_EXTENSION_PATH @@ -99,25 +97,6 @@ void XWalkExtensionManagerTV::LoadExtensions( ParseUpgradableExtensions(); } -void XWalkExtensionManagerTV::UnloadExtensions() { - XWalkExtensionManager::UnloadExtensions(); - SaveLoadedExtensions(); -} - -void XWalkExtensionManagerTV::CreateInstance( - const std::string& name, CreateInstanceCallback callback) { - XWalkExtensionManager::CreateInstance(name, std::move(callback)); - - auto it = extensions_.find(name); - if (it == extensions_.end()) - return; - - auto widget_state = wrt::WidgetStateProvider::GetWidgetStatus(); - if (widget_state == "init" || widget_state == "load") { - loaded_extensions_[name] = it->second->GetLibraryPath(); - } -} - std::string XWalkExtensionManagerTV::HandleRuntimeMessageInternal( const std::string& type, const std::string& value) { if (electron::Browser::Get()->is_quitting()) { @@ -243,74 +222,6 @@ bool XWalkExtensionManagerTV::IsPreloadedExtension(std::string extension_name) { return preload_extensions_.find(extension_name) != preload_extensions_.end(); } -void XWalkExtensionManagerTV::SaveLoadedExtensions() { - for (auto& extension : preload_extensions_) { - loaded_extensions_.erase(extension.first); - } - - for (const auto& it : prefetched_extensions_) - loaded_extensions_.erase(it.first); - - if (!loaded_extensions_.size()) - return; - - std::string extension_list; - for (const auto& it : prefetched_extensions_) - extension_list.append(it.first + ":").append(it.second + ","); - for (const auto& it : loaded_extensions_) - extension_list.append(it.first + ":").append(it.second + ","); - extension_list.erase(extension_list.size() - 1); - - LOG(INFO) << "SaveLoadedExtensions : " << extension_list; - auto widget_version = - wrt::ApplicationData::GetInstance().widget_info().version(); - auto& db = wrt::AppDB::GetInstance(); - db.Set("loaded_extension", widget_version, extension_list); -} - -void XWalkExtensionManagerTV::PrefetchExtensions() { - static bool prefetched; - if (prefetched) - return; - prefetched = true; - - if (electron::Browser::Get()->is_quitting()) - return; - - auto widget_version = - wrt::ApplicationData::GetInstance().widget_info().version(); - auto& db = wrt::AppDB::GetInstance(); - auto loaded_extensions = db.Get("loaded_extension", widget_version); - if (loaded_extensions.empty()) - return; - - LOG(INFO) << "PrefetchExtensions : " << loaded_extensions; - - auto extension_list = base::SplitString(loaded_extensions, ",", - base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); - for (const auto& it : extension_list) { - auto extension_info = - base::SplitString(it, ":", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); - if (extension_info.size() != 2) - continue; - if (extension_info[1].find(XWALK_EXTENSION_PATH) != std::string::npos && - !GetUpgradableLibPath(extension_info[0]).empty()) { - // Skip if same RO so is in upgradable list - continue; - } - if (extension_info[1].find(XWALK_EXTENSION_PATH) == std::string::npos && - GetUpgradableLibPath(extension_info[0]).empty()) { - // Skip if RW so is not in upgradable list - continue; - } - void* dlhandle = dlopen(extension_info[1].c_str(), RTLD_LAZY); - if (!dlhandle) - LOG(WARNING) << extension_info[1] << " fail to load libs : " << dlerror(); - else - prefetched_extensions_[extension_info[0]] = extension_info[1]; - } -} - bool XWalkExtensionManagerTV::NeedHandleUpgradeWebapiJson() { auto upgrade_webapis_json_path = wrt::NativeWebRuntimeDelegateTV::GetInstance().GetUpgradeWebapiJsonPath(); diff --git a/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.h b/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.h index 07ae27a..65d4c90 100644 --- a/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.h +++ b/wrt/xwalk_extensions/browser/tv/xwalk_extension_manager_tv.h @@ -17,14 +17,10 @@ class XWalkExtensionManagerTV : public XWalkExtensionManager { private: // XWalkExtensionManager: void LoadExtensions(wrt::ApplicationData::AppType app_type) override; - void CreateInstance(const std::string& name, - CreateInstanceCallback callback) override; - void PrefetchExtensions() override; void PreloadExtensions() override; void ParseUpgradableExtensions() override; void RegisterUpgradableExtensions() override; void SetCachedPrivileges() override; - void UnloadExtensions() override; std::string GetUpgradableLibPath(const std::string& name) override; std::string HandleRuntimeMessageInternal( const std::string& type, const std::string& value) override; @@ -33,11 +29,8 @@ class XWalkExtensionManagerTV : public XWalkExtensionManager { bool IsPreloadedExtension(std::string extension_name); bool NeedHandleUpgradeWebapiJson(); bool OpenTizenCommonExntension(); - void SaveLoadedExtensions(); using ExtensionInfo = std::map; - ExtensionInfo loaded_extensions_; - ExtensionInfo prefetched_extensions_; ExtensionInfo force_update_extensions_; ExtensionInfo system_default_extensions_; std::map diff --git a/wrt/xwalk_extensions/browser/xwalk_extension_manager.h b/wrt/xwalk_extensions/browser/xwalk_extension_manager.h index 578052a..b8260e9 100644 --- a/wrt/xwalk_extensions/browser/xwalk_extension_manager.h +++ b/wrt/xwalk_extensions/browser/xwalk_extension_manager.h @@ -53,7 +53,6 @@ class XWalkExtensionManager : public mojom::XWalkExtensionBrowser { virtual void UnloadExtensions(); // product specific functions - virtual void PrefetchExtensions() {} virtual void ParseUpgradableExtensions() {} virtual void RegisterUpgradableExtensions() {} virtual void SetCachedPrivileges() {} -- 2.7.4 From b7864fe2dafd796fd46d696db21e7ce033c1c3b3 Mon Sep 17 00:00:00 2001 From: Ayush Kumar Date: Fri, 24 Feb 2023 10:34:43 +0530 Subject: [PATCH 04/16] [M108 Migration][Autofill] Introduce autofill fw interface This change 1. Introduces interface for autofill fw in tizen. 2. Supports mockup for callbacks and APIs for SPASS feature for TV. 3. Refactors, enhances and fixes issue related to tizen autofill. References : https://review.tizen.org/gerrit/269462 Change-Id: Ia91806470622bc4a1c2c5a2d917bf1babdb1e675 Signed-off-by: Ayush Kumar --- .../browser/content_autofill_driver_factory.cc | 2 +- .../autofill/content/renderer/autofill_agent.cc | 6 + .../autofill/content/renderer/autofill_agent.h | 5 + .../autofill/content/renderer/form_tracker.cc | 6 + .../autofill/content/renderer/form_tracker.h | 3 + .../content/renderer/password_autofill_agent.cc | 180 +++++++++ .../content/renderer/password_autofill_agent.h | 15 + .../renderer/password_form_conversion_utils.cc | 32 ++ components/autofill/core/browser/BUILD.gn | 13 + .../core/browser/browser_autofill_manager.cc | 8 + .../browser/payments/credit_card_save_manager.cc | 7 + .../autofill/core/browser/personal_data_manager.cc | 2 +- .../autofill/core/common/autofill_switches.h | 4 +- components/autofill/core/common/form_data.h | 3 + .../credential_manager_pending_request_task.cc | 6 +- .../core/browser/form_fetcher_impl.cc | 19 +- .../core/browser/form_fetcher_impl.h | 4 + .../core/browser/http_password_store_migrator.cc | 15 +- .../core/browser/http_password_store_migrator.h | 7 + .../core/browser/password_form_digest.cc | 14 +- .../core/browser/password_form_digest.h | 3 + .../core/browser/password_form_manager.cc | 3 + .../core/browser/password_manager.cc | 85 ++++ .../core/browser/password_manager_client.h | 3 + .../core/browser/password_store.cc | 55 ++- .../password_manager/core/browser/password_store.h | 15 +- .../core/browser/password_store_backend.h | 4 + .../browser/password_store_built_in_backend.cc | 7 + .../core/browser/password_store_built_in_backend.h | 4 + .../core/browser/password_store_interface.h | 8 +- .../renderer_host/render_frame_host_impl.cc | 17 + .../renderer_host/render_process_host_impl.cc | 7 + .../renderer_host/render_widget_host_impl.cc | 4 + .../renderer_host/render_widget_host_impl.h | 1 + packaging/chromium-efl.spec | 3 + .../public/mojom/widget/platform_widget.mojom | 4 + third_party/blink/public/web/web_autofill_client.h | 4 + third_party/blink/public/web/web_element.h | 4 + third_party/blink/public/web/web_local_frame.h | 3 + .../blink/renderer/core/exported/web_element.cc | 5 + .../renderer/core/frame/web_frame_widget_impl.cc | 10 + .../renderer/core/frame/web_frame_widget_impl.h | 1 + .../renderer/core/frame/web_local_frame_impl.cc | 6 + .../renderer/core/frame/web_local_frame_impl.h | 3 + .../blink/renderer/platform/widget/widget_base.cc | 4 + .../blink/renderer/platform/widget/widget_base.h | 1 + .../renderer/platform/widget/widget_base_client.h | 1 + tizen_src/build/BUILD.gn | 57 +++ tizen_src/build/config/BUILD.gn | 7 +- tizen_src/build/config/tizen_features.gni | 12 +- tizen_src/ewk/efl_integration/BUILD.gn | 28 +- .../autocomplete_history_manager_factory.cc | 4 +- .../autocomplete_history_manager_factory.h | 4 +- .../browser/autofill/autofill_client_efl.cc | 30 +- .../browser/autofill/autofill_client_efl.h | 7 +- .../browser/autofill/autofill_login_request.cc | 83 ++++ .../browser/autofill/autofill_login_request.h | 58 +++ .../browser/autofill/autofill_request.cc | 446 +++++++++++++++++++++ .../browser/autofill/autofill_request.h | 93 +++++ .../browser/autofill/autofill_request_manager.cc | 99 +++++ .../browser/autofill/autofill_request_manager.h | 62 +++ .../autofill/personal_data_manager_factory.cc | 4 +- .../autofill/personal_data_manager_factory.h | 4 +- .../browser/autofill_popup_view_efl.cc | 4 +- .../browser/autofill_popup_view_efl.h | 4 +- .../password_manager/password_helper_efl.cc | 4 +- .../browser/password_manager/password_helper_efl.h | 4 +- .../password_manager_client_efl.cc | 21 +- .../password_manager/password_manager_client_efl.h | 25 +- .../password_manager/password_store_factory.cc | 4 +- .../password_manager/password_store_factory.h | 4 +- .../browser/webdata/web_data_service.cc | 4 +- .../browser/webdata/web_data_service.h | 4 +- .../browser/webdata/web_data_service_factory.cc | 4 +- .../browser/webdata/web_data_service_factory.h | 4 +- .../ewk/efl_integration/browser_context_efl.cc | 6 +- .../efl_integration/content_browser_client_efl.cc | 12 +- tizen_src/ewk/efl_integration/eweb_context.cc | 16 +- tizen_src/ewk/efl_integration/eweb_view.cc | 18 + .../ewk/efl_integration/eweb_view_callbacks.h | 13 + .../private/ewk_autofill_profile_private.cc | 30 ++ .../private/ewk_autofill_profile_private.h | 29 ++ .../ewk_context_form_autofill_profile_private.cc | 4 +- .../ewk_context_form_autofill_profile_private.h | 4 +- .../efl_integration/public/ewk_autofill_profile.cc | 12 +- .../ewk/efl_integration/public/ewk_context.cc | 12 +- tizen_src/ewk/efl_integration/public/ewk_view.cc | 3 +- .../renderer/content_renderer_client_efl.cc | 6 +- .../efl_integration/web_contents_delegate_efl.cc | 28 +- .../efl_integration/web_contents_delegate_efl.h | 7 +- .../efl_integration/web_contents_observer_efl.cc | 4 +- 91 files changed, 1793 insertions(+), 111 deletions(-) create mode 100644 tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.cc create mode 100644 tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.h create mode 100644 tizen_src/ewk/efl_integration/browser/autofill/autofill_request.cc create mode 100644 tizen_src/ewk/efl_integration/browser/autofill/autofill_request.h create mode 100644 tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.cc create mode 100644 tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.h diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc index 528e832..939375e 100644 --- a/components/autofill/content/browser/content_autofill_driver_factory.cc +++ b/components/autofill/content/browser/content_autofill_driver_factory.cc @@ -44,7 +44,7 @@ void BrowserDriverInitHook(AutofillClient* client, ContentAutofillDriver* driver) { driver->set_autofill_manager(std::make_unique( driver, client, app_locale, -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) AutofillManager::EnableDownloadManager(false) #else AutofillManager::EnableDownloadManager(true) diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc index e50083e..25fd3ef 100644 --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc @@ -1179,6 +1179,12 @@ void AutofillAgent::JavaScriptChangedAutofilledValue( } } +#if defined(TIZEN_AUTOFILL_FW) +void AutofillAgent::ForceResetLastInteractedElements() { + form_tracker_.ForceResetLastInteractedElements(); +} +#endif + void AutofillAgent::OnProvisionallySaveForm( const WebFormElement& form, const WebFormControlElement& element, diff --git a/components/autofill/content/renderer/autofill_agent.h b/components/autofill/content/renderer/autofill_agent.h index 554a333..ae3063d 100644 --- a/components/autofill/content/renderer/autofill_agent.h +++ b/components/autofill/content/renderer/autofill_agent.h @@ -216,6 +216,11 @@ class AutofillAgent : public content::RenderFrameObserver, void JavaScriptChangedAutofilledValue( const blink::WebFormControlElement& element, const blink::WebString& old_value) override; + +#if defined(TIZEN_AUTOFILL_FW) + void ForceResetLastInteractedElements() override; +#endif + void DidCompleteFocusChangeInFrame() override; void DidReceiveLeftMouseDownOrGestureTapInNode( const blink::WebNode& node) override; diff --git a/components/autofill/content/renderer/form_tracker.cc b/components/autofill/content/renderer/form_tracker.cc index 16d5736..38c7295 100644 --- a/components/autofill/content/renderer/form_tracker.cc +++ b/components/autofill/content/renderer/form_tracker.cc @@ -127,6 +127,12 @@ void FormTracker::FireProbablyFormSubmittedForTesting() { FireProbablyFormSubmitted(); } +#if defined(TIZEN_AUTOFILL_FW) +void FormTracker::ForceResetLastInteractedElements() { + ResetLastInteractedElements(); +} +#endif + void FormTracker::FormControlDidChangeImpl( const WebFormControlElement& element, Observer::ElementChangeSource change_source) { diff --git a/components/autofill/content/renderer/form_tracker.h b/components/autofill/content/renderer/form_tracker.h index 248ccad..98b9382 100644 --- a/components/autofill/content/renderer/form_tracker.h +++ b/components/autofill/content/renderer/form_tracker.h @@ -94,6 +94,9 @@ class FormTracker : public content::RenderFrameObserver, } void FireProbablyFormSubmittedForTesting(); +#if defined(TIZEN_AUTOFILL_FW) + void ForceResetLastInteractedElements(); +#endif private: FRIEND_TEST_ALL_PREFIXES(FormAutocompleteTest, diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc index 328c757..f37425c 100644 --- a/components/autofill/content/renderer/password_autofill_agent.cc +++ b/components/autofill/content/renderer/password_autofill_agent.cc @@ -47,6 +47,18 @@ #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/input/web_input_event.h" + +#if BUILDFLAG(IS_TIZEN_TV) +#include "base/command_line.h" +#include "ewk/efl_integration/common/content_switches_efl.h" +#include "third_party/blink/public/common/input/web_coalesced_input_event.h" +#include "third_party/blink/public/common/input/web_keyboard_event.h" +#include "third_party/blink/public/platform/web_application_type.h" +#include "third_party/blink/public/platform/web_string.h" +#include "third_party/blink/public/web/web_frame_widget.h" +#include "third_party/blink/public/web/web_widget.h" +#endif + #include "third_party/blink/public/platform/web_security_origin.h" #include "third_party/blink/public/platform/web_vector.h" #include "third_party/blink/public/web/web_autofill_client.h" @@ -74,6 +86,9 @@ using blink::WebNode; using blink::WebString; using blink::WebVector; using blink::WebView; +#if BUILDFLAG(IS_TIZEN_TV) +using blink::WebString; +#endif namespace autofill { @@ -99,6 +114,12 @@ const char kDebugAttributeForFieldSignature[] = "field_signature"; const char kDebugAttributeForParserAnnotations[] = "pm_parser_annotation"; const char kDebugAttributeForVisibility[] = "visibility_annotation"; +#if BUILDFLAG(IS_TIZEN_TV) +// The words that frequently appear in attribute values of captcha elements. +const char* const kCaptchaFeatures[] = {"captcha", "security", "code"}; +constexpr size_t kNumberOfCaptchaFeatures = std::size(kCaptchaFeatures); +#define kSendEnterKeyTimeout 200 +#endif // Maps element names to the actual elements to simplify form filling. typedef std::map FormInputElementMap; @@ -1438,6 +1459,13 @@ void PasswordAutofillAgent::OnProbablyFormSubmitted() {} // mojom::PasswordAutofillAgent: void PasswordAutofillAgent::SetPasswordFillData( const PasswordFormFillData& form_data) { +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " name: " << base::UTF16ToUTF8(form_data.name).c_str(); + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " wait_for_username: " << form_data.wait_for_username; +#endif + std::unique_ptr logger; if (logging_state_active_) { logger = std::make_unique( @@ -1475,12 +1503,20 @@ void PasswordAutofillAgent::SetPasswordFillData( // If wait_for_username is true, we don't want to initially fill the form // until the user types in a valid username. if (form_data.wait_for_username) { +#if defined(TIZEN_AUTOFILL_FW) + // TODO(djmix.kim) : skip temporary for autofill form +#else LogFirstFillingResult(form_data, FillingResult::kWaitForUsername); return; +#endif } FillUserNameAndPassword(username_element, password_element, form_data, logger.get()); +#if BUILDFLAG(IS_TIZEN_TV) + if (SupportAutoLogin()) + SubmitFormForAutoLogin(password_element); +#endif } void PasswordAutofillAgent::SetLoggingState(bool active) { @@ -1799,11 +1835,25 @@ bool PasswordAutofillAgent::FillUserNameAndPassword( WebInputElement main_element = is_single_username_fill ? username_element : password_element; +#if defined(TIZEN_AUTOFILL_FW) + WebFrame* cur_frame = main_element.GetDocument().GetFrame(); + WebString bottom_frame_origin = cur_frame->GetSecurityOrigin().ToString(); + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " bottom_frame_origin : " << bottom_frame_origin.Utf8().c_str() + << ", cur_frame->GetSecurityOrigin() : " + << cur_frame->GetSecurityOrigin().ToString().Utf8().c_str(); + if (IsInCrossOriginIframeOrEmbeddedFrame(main_element)) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " daum login issue, skip temporary"; + // TODO(djmix.kim) : skip temporary for daum login issue + } +#else if (IsInCrossOriginIframeOrEmbeddedFrame(main_element)) { LogMessage(logger, Logger::STRING_FAILED_TO_FILL_INTO_IFRAME); LogFirstFillingResult(fill_data, FillingResult::kBlockedByFrameHierarchy); return false; } +#endif // Don't fill username if password can't be set. if (!IsElementEditable(main_element)) { @@ -1896,6 +1946,11 @@ bool PasswordAutofillAgent::FillUserNameAndPassword( (username_element.Value().IsEmpty() || username_element.GetAutofillState() != WebAutofillState::kNotFilled || prefilled_placeholder_username)) { +#if defined(TIZEN_AUTOFILL_FW) + // We fill username and password directly + FillField(&username_element, username); + } +#else AutofillField(username, username_element); if (prefilled_placeholder_username) { LogPrefilledUsernameFillOutcome( @@ -1903,12 +1958,17 @@ bool PasswordAutofillAgent::FillUserNameAndPassword( kPrefilledPlaceholderUsernameOverridden); } } +#endif if (logger) logger->LogElementName(Logger::STRING_USERNAME_FILLED, username_element); } if (!is_single_username_fill) { +#if defined(TIZEN_AUTOFILL_FW) + FillPasswordFieldAndSave(&password_element, password); +#else AutofillField(password, password_element); +#endif if (logger) logger->LogElementName(Logger::STRING_PASSWORD_FILLED, password_element); } @@ -2221,4 +2281,124 @@ void PasswordAutofillAgent::NotifyPasswordManagerAboutClearedForm( } } +#if BUILDFLAG(IS_TIZEN_TV) +void PasswordAutofillAgent::SendEnterKeyBoardEvent() { + if (!render_frame()) + return; + blink::WebView* web_view = render_frame()->GetWebView(); + if (!web_view) + return; + blink::WebWidget* widget = web_view->MainFrameWidget(); + + LOG(INFO) << "[Autofill] - " << __FUNCTION__; + blink::WebKeyboardEvent keyboard_event; + keyboard_event.windows_key_code = ui::VKEY_RETURN; + keyboard_event.SetModifiers(blink::WebInputEvent::kIsKeyPad); + keyboard_event.text[0] = ui::VKEY_RETURN; + keyboard_event.SetType(blink::WebInputEvent::Type::kKeyDown); + widget->HandleInputEvent( + blink::WebCoalescedInputEvent(keyboard_event, ui::LatencyInfo())); + keyboard_event.SetType(blink::WebInputEvent::Type::kKeyUp); + widget->HandleInputEvent( + blink::WebCoalescedInputEvent(keyboard_event, ui::LatencyInfo())); +} + +// Removes some characters from attribute value. +void ClearAttributeValue(std::string* value) { + value->erase(std::remove_if(value->begin(), value->end(), + [](char x) { return x == '-' || x == '_'; }), + value->end()); +} +// Find |features| in |element|'s attribute values. Returns true if at least one +// text feature was found. +bool FindTextFeaturesForClass(const blink::WebElement& element, + const char* const features[], + size_t number_of_features) { + DCHECK(features); + + for (unsigned i = 0; i < element.AttributeCount(); ++i) { + std::string filtered_value = + base::ToLowerASCII(element.AttributeValue(i).Utf8()); + ClearAttributeValue(&filtered_value); + + if (filtered_value.empty()) + continue; + for (size_t j = 0; j < number_of_features; ++j) { + if (filtered_value.find(features[j]) != std::string::npos) + return true; + } + } + return false; +} + +// Returns true if at least one captcha feature was found in |element|'s +// attribute values. +bool IsCaptchaInput(const blink::WebInputElement& element) { + return FindTextFeaturesForClass(element, kCaptchaFeatures, + kNumberOfCaptchaFeatures); +} +// Finds 's inside |form| and checks if 's attributes contains captcha +// text features. Returns true, if at least one occurrence was found. +bool FindCaptchaInImgElements(const blink::WebElement& form) { + static const base::NoDestructor wrapper("img"); + const WebString& kImageTag = *wrapper; + + blink::WebElementCollection img_elements = + form.GetElementsByHTMLTagName(kImageTag); + for (blink::WebElement element = img_elements.FirstItem(); !element.IsNull(); + element = img_elements.NextItem()) { + if (!form_util::IsWebElementVisible(element)) + continue; + + if (FindTextFeaturesForClass(element, kCaptchaFeatures, + kNumberOfCaptchaFeatures)) { + return true; + } + } + return false; +} + +void PasswordAutofillAgent::SubmitFormForAutoLogin( + blink::WebInputElement& password_input) { + LOG(INFO) << "[Autofill] - " << __FUNCTION__; + if (IsCaptchaInput(password_input)) { + LOG(INFO) << "[Autofill] - " << __FUNCTION__ + << " Page include captcha input, do not autologin"; + return; + } + if (FindCaptchaInImgElements(password_input.Form())) { + LOG(INFO) << "[Autofill] - " << __FUNCTION__ + << " Page include captcha image, do not autologin"; + return; + } + // FIXME: sometimes focus is on other field but login form, + // it will cause key event send to wrong element. + password_input.Focus(); + // Attention: if password_input element is not focusable at the time of + // calling Focus(), it will still be unfocused after Focus() is returned. + + // TODO(daoning.ren): this is workaround solution for google.com + // there is delay page switch during login, key event will send + // before page switch, so make a delay here + render_frame() + ->GetTaskRunner(blink::TaskType::kInternalUserInteraction) + ->PostDelayedTask( + FROM_HERE, + base::BindOnce(&PasswordAutofillAgent::SendEnterKeyBoardEvent, + base::Unretained(this)), + base::Milliseconds(kSendEnterKeyTimeout)); +} + +bool PasswordAutofillAgent::SupportAutoLogin() { + // There are 2 browser types from Tizen5.5: + // org.tizen.browser, com.samsung.tv.knox-browser + // Only org.tizen.browser app need AutoLogin behavior according to their spec. + // The latter just wants Autofill. + const std::string tizen_app_id = + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( + switches::kTizenAppId); + return tizen_app_id == "org.tizen.browser"; +} +#endif + } // namespace autofill diff --git a/components/autofill/content/renderer/password_autofill_agent.h b/components/autofill/content/renderer/password_autofill_agent.h index 63a6ff4..cb93e85 100644 --- a/components/autofill/content/renderer/password_autofill_agent.h +++ b/components/autofill/content/renderer/password_autofill_agent.h @@ -504,6 +504,21 @@ class PasswordAutofillAgent : public content::RenderFrameObserver, void NotifyPasswordManagerAboutClearedForm( const blink::WebFormElement& cleared_form); +#if BUILDFLAG(IS_TIZEN_TV) + // Returns if the word 'captcha' is present in the markup of any of the nodes + // under the given node. + bool CheckMarkupForCaptcha(blink::WebFormElement element); + + // Attemps to do autologin + void SubmitFormForAutoLogin(blink::WebInputElement& password_input); + + // Attempts to send enterkeydown events to blink + void SendEnterKeyBoardEvent(); + + // Return whether we need to support autologin. + bool SupportAutoLogin(); +#endif + // The logins we have filled so far with their associated info. WebInputToPasswordInfoMap web_input_to_password_info_; // A (sort-of) reverse map to |web_input_to_password_info_|. diff --git a/components/autofill/content/renderer/password_form_conversion_utils.cc b/components/autofill/content/renderer/password_form_conversion_utils.cc index 86eef13..4254c09 100644 --- a/components/autofill/content/renderer/password_form_conversion_utils.cc +++ b/components/autofill/content/renderer/password_form_conversion_utils.cc @@ -116,6 +116,17 @@ bool IsGaiaWithSkipSavePasswordForm(const blink::WebFormElement& form) { return should_skip_password == "1"; } +#if defined(TIZEN_AUTOFILL_FW) +// Returns the PasswordContents reflecting the contents of |fields|. +bool HasPasswordContents(const std::vector& fields) { + for (const FormFieldData& field : fields) { + if (field.form_control_type == "password") + return true; + } + return false; +} +#endif + std::unique_ptr CreateFormDataFromWebForm( const WebFormElement& web_form, const FieldDataManager* field_data_manager, @@ -139,12 +150,23 @@ std::unique_ptr CreateFormDataFromWebForm( form_data.get(), nullptr /* FormFieldData */)) { return nullptr; } + +#if defined(TIZEN_AUTOFILL_FW) + if (!HasPasswordContents(form_data->fields)) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << ", not a password form"; + return nullptr; + } +#endif + form_data->username_predictions = GetUsernamePredictions(control_elements.ReleaseVector(), *form_data, username_detector_cache, web_form); form_data->button_titles = form_util::GetButtonTitles( web_form, web_form.GetDocument(), button_titles_cache); +#if defined(TIZEN_AUTOFILL_FW) + form_data->title = web_form.GetDocument().Title().Utf8(); +#endif return form_data; } @@ -172,11 +194,21 @@ std::unique_ptr CreateFormDataFromUnownedInputElements( return nullptr; } +#if defined(TIZEN_AUTOFILL_FW) + if (!HasPasswordContents(form_data->fields)) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << ", not a password form"; + return nullptr; + } +#endif + form_data->username_predictions = GetUsernamePredictions( control_elements, *form_data, username_detector_cache, WebFormElement()); form_data->button_titles = form_util::GetButtonTitles( WebFormElement(), frame.GetDocument(), button_titles_cache); +#if defined(TIZEN_AUTOFILL_FW) + form_data->title = frame.GetDocument().Title().Utf8(); +#endif return form_data; } diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn index 444cae5..56c06e5 100644 --- a/components/autofill/core/browser/BUILD.gn +++ b/components/autofill/core/browser/BUILD.gn @@ -500,6 +500,19 @@ static_library("browser") { defines = [ "CHROME_VERSION_MAJOR=" + chrome_version_major ] + if (tizen_autofill_fw) { + configs += [ + "//tizen_src/build:ecore-evas", + "//tizen_src/build:libecore-evas", + "//tizen_src/build:capi-ui-autofill", + "//tizen_src/build:libcapi-ui-autofill", + "//tizen_src/build:capi-ui-autofill-common", + "//tizen_src/build:libcapi-ui-autofill-common", + "//tizen_src/build:capi-ui-autofill-service", + "//tizen_src/build:libcapi-ui-autofill-service", + ] + } + configs += [ "//build/config:precompiled_headers" ] public_deps = [ diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc index 9712866..cff3f52 100644 --- a/components/autofill/core/browser/browser_autofill_manager.cc +++ b/components/autofill/core/browser/browser_autofill_manager.cc @@ -830,6 +830,14 @@ void BrowserAutofillManager::OnFormSubmittedImpl(const FormData& form, credit_card_form_event_logger_->OnFormSubmitted(sync_state_, *submitted_form); } + +#if defined(TIZEN_AUTOFILL) + if (!client()->GetFormDataImporter()) { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ + << " FormDataImporter is invalid"; + return; + } +#endif } bool BrowserAutofillManager::MaybeStartVoteUploadProcess( diff --git a/components/autofill/core/browser/payments/credit_card_save_manager.cc b/components/autofill/core/browser/payments/credit_card_save_manager.cc index 9c0ef61..d13ff1c 100644 --- a/components/autofill/core/browser/payments/credit_card_save_manager.cc +++ b/components/autofill/core/browser/payments/credit_card_save_manager.cc @@ -309,6 +309,13 @@ void CreditCardSaveManager::AttemptToOfferCardUploadSave( } bool CreditCardSaveManager::IsCreditCardUploadEnabled() { +#if defined(TIZEN_AUTOFILL_FW) + if (!personal_data_manager_) { + LOG(INFO) << "Autofill " << __FUNCTION__ + << " Invalid personal_data_manager_"; + return false; + } +#endif #if BUILDFLAG(IS_IOS) // If observer_for_testing_ is set, assume we are in a browsertest and // credit card upload should be enabled by default. diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc index b056cd0..102769b 100644 --- a/components/autofill/core/browser/personal_data_manager.cc +++ b/components/autofill/core/browser/personal_data_manager.cc @@ -1033,7 +1033,7 @@ void PersonalDataManager::AddOfferDataForTest( void PersonalDataManager:: RemoveAutofillProfileByGUIDAndBlankCreditCardReference( const std::string& guid) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) // TODO(djmix.kim) : This is a temporary solution for tct. // It will be removed after integrating autofill_profile_validator_factory. database_helper_->GetLocalDatabase()->RemoveAutofillProfile(guid); diff --git a/components/autofill/core/common/autofill_switches.h b/components/autofill/core/common/autofill_switches.h index 2e5cf7c..f9c2030 100644 --- a/components/autofill/core/common/autofill_switches.h +++ b/components/autofill/core/common/autofill_switches.h @@ -20,9 +20,9 @@ extern const char kShowAutofillTypePredictions[]; extern const char kShowAutofillSignatures[]; extern const char kWalletServiceUseSandbox[]; -// As of today TIZEN_AUTOFILL_SUPPORT is restricted to +// As of today TIZEN_AUTOFILL is restricted to // tizen_src/ewk/efl_integration only. Move this switch under -// TIZEN_AUTOFILL_SUPPORT when possible. +// TIZEN_AUTOFILL when possible. #if BUILDFLAG(IS_EFL) extern const char kDisableAutofill[]; #endif diff --git a/components/autofill/core/common/form_data.h b/components/autofill/core/common/form_data.h index 2f23b0d..1fef743 100644 --- a/components/autofill/core/common/form_data.h +++ b/components/autofill/core/common/form_data.h @@ -276,6 +276,9 @@ struct FormData { #if BUILDFLAG(IS_IOS) std::string frame_id; #endif +#if defined(TIZEN_AUTOFILL_FW) + std::string title; +#endif }; // Whether any of the fields in |form| is a non-empty password field. diff --git a/components/password_manager/core/browser/credential_manager_pending_request_task.cc b/components/password_manager/core/browser/credential_manager_pending_request_task.cc index da43e1a..d74fcfa 100644 --- a/components/password_manager/core/browser/credential_manager_pending_request_task.cc +++ b/components/password_manager/core/browser/credential_manager_pending_request_task.cc @@ -168,7 +168,11 @@ void CredentialManagerPendingRequestTask::OnGetPasswordStoreResultsFrom( if (results.empty() && origin_.scheme() == url::kHttpsScheme) { // Try to migrate the HTTP passwords and process them later. http_migrators_[store] = std::make_unique( - origin_, store, delegate_->client()->GetNetworkContext(), this); + origin_, store, delegate_->client()->GetNetworkContext(), +#if defined(TIZEN_AUTOFILL_FW) + delegate_->client(), +#endif + this); return; } AggregatePasswordStoreResults(std::move(results)); diff --git a/components/password_manager/core/browser/form_fetcher_impl.cc b/components/password_manager/core/browser/form_fetcher_impl.cc index f3827e8..702d49a 100644 --- a/components/password_manager/core/browser/form_fetcher_impl.cc +++ b/components/password_manager/core/browser/form_fetcher_impl.cc @@ -122,8 +122,17 @@ void FormFetcherImpl::Fetch() { wait_counter_++; state_ = State::WAITING; +#if defined(TIZEN_AUTOFILL_FW) + profile_password_store->GetLogins( + form_digest_, weak_ptr_factory_.GetWeakPtr(), skip_checking_autofill_, + client_->GetWebview()); + + skip_checking_autofill_ = false; +#else + profile_password_store->GetLogins(form_digest_, weak_ptr_factory_.GetWeakPtr()); +#endif if (account_password_store) account_password_store->GetLogins(form_digest_, weak_ptr_factory_.GetWeakPtr()); @@ -216,6 +225,10 @@ std::unique_ptr FormFetcherImpl::Clone() { // then it was done by |this| already. auto result = std::make_unique(form_digest_, client_, false); +#if defined(TIZEN_AUTOFILL_FW) + result->skip_checking_autofill_ = true; +#endif + if (state_ != State::NOT_WAITING) { // There are no store results to copy, trigger a Fetch on the clone instead. result->Fetch(); @@ -326,7 +339,11 @@ void FormFetcherImpl::OnGetPasswordStoreResultsOrErrorFrom( form_digest_.url.SchemeIs(url::kHttpsScheme)) { http_migrators_[store] = std::make_unique( url::Origin::Create(form_digest_.url), store, - client_->GetNetworkContext(), this); + client_->GetNetworkContext(), +#if defined(TIZEN_AUTOFILL_FW) + client_, +#endif + this); // The migrator will call us back at ProcessMigratedForms(). return; } diff --git a/components/password_manager/core/browser/form_fetcher_impl.h b/components/password_manager/core/browser/form_fetcher_impl.h index 7755207..80f865b 100644 --- a/components/password_manager/core/browser/form_fetcher_impl.h +++ b/components/password_manager/core/browser/form_fetcher_impl.h @@ -94,6 +94,10 @@ class FormFetcherImpl : public FormFetcher, // List of insecure credentials for the current domain. std::vector> insecure_credentials_; +#if defined(TIZEN_AUTOFILL_FW) + bool skip_checking_autofill_ = false; +#endif + // Indicates whether HTTP passwords should be migrated to HTTPS. This is // always false for non HTML forms. const bool should_migrate_http_passwords_; diff --git a/components/password_manager/core/browser/http_password_store_migrator.cc b/components/password_manager/core/browser/http_password_store_migrator.cc index f041604..d8b60b0 100644 --- a/components/password_manager/core/browser/http_password_store_migrator.cc +++ b/components/password_manager/core/browser/http_password_store_migrator.cc @@ -18,6 +18,10 @@ #include "url/gurl.h" #include "url/url_constants.h" +#if defined(TIZEN_AUTOFILL_FW) +#include "components/password_manager/core/browser/password_manager_client.h" +#endif + namespace password_manager { namespace { @@ -39,6 +43,9 @@ HttpPasswordStoreMigrator::HttpPasswordStoreMigrator( const url::Origin& https_origin, PasswordStoreInterface* store, network::mojom::NetworkContext* network_context, +#if defined(TIZEN_AUTOFILL_FW) + const PasswordManagerClient* client, +#endif Consumer* consumer) : store_(store), consumer_(consumer) { DCHECK(store_); @@ -52,8 +59,12 @@ HttpPasswordStoreMigrator::HttpPasswordStoreMigrator( http_origin.DeprecatedGetOriginAsURL().spec(), http_origin); http_origin_domain_ = url::Origin::Create(http_origin); - store_->GetLogins(form, weak_ptr_factory_.GetWeakPtr()); - + store_->GetLogins(form, weak_ptr_factory_.GetWeakPtr() +#if defined(TIZEN_AUTOFILL_FW) + , + false, client->GetWebview() +#endif + ); PostHSTSQueryForHostAndNetworkContext( https_origin, network_context, base::BindOnce(&OnHSTSQueryResultHelper, weak_ptr_factory_.GetWeakPtr())); diff --git a/components/password_manager/core/browser/http_password_store_migrator.h b/components/password_manager/core/browser/http_password_store_migrator.h index 8e41538..33b0461 100644 --- a/components/password_manager/core/browser/http_password_store_migrator.h +++ b/components/password_manager/core/browser/http_password_store_migrator.h @@ -20,6 +20,10 @@ namespace password_manager { class PasswordStoreInterface; struct PasswordForm; +#if defined(TIZEN_AUTOFILL_FW) +class PasswordManagerClient; +#endif + // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // @@ -58,6 +62,9 @@ class HttpPasswordStoreMigrator : public PasswordStoreConsumer { HttpPasswordStoreMigrator(const url::Origin& https_origin, PasswordStoreInterface* store, network::mojom::NetworkContext* network_context, +#if defined(TIZEN_AUTOFILL_FW) + const PasswordManagerClient* client, +#endif Consumer* consumer); HttpPasswordStoreMigrator(const HttpPasswordStoreMigrator&) = delete; diff --git a/components/password_manager/core/browser/password_form_digest.cc b/components/password_manager/core/browser/password_form_digest.cc index 9947fda..e0c5130 100644 --- a/components/password_manager/core/browser/password_form_digest.cc +++ b/components/password_manager/core/browser/password_form_digest.cc @@ -4,6 +4,10 @@ #include "components/password_manager/core/browser/password_form_digest.h" +#if defined(TIZEN_AUTOFILL_FW) +#include "base/strings/utf_string_conversions.h" +#endif + namespace password_manager { PasswordFormDigest::PasswordFormDigest(PasswordForm::Scheme new_scheme, const std::string& new_signon_realm, @@ -11,7 +15,15 @@ PasswordFormDigest::PasswordFormDigest(PasswordForm::Scheme new_scheme, : scheme(new_scheme), signon_realm(new_signon_realm), url(new_url) {} PasswordFormDigest::PasswordFormDigest(const PasswordForm& form) - : scheme(form.scheme), signon_realm(form.signon_realm), url(form.url) {} + : scheme(form.scheme), + signon_realm(form.signon_realm), + url(form.url) +#if defined(TIZEN_AUTOFILL_FW) + , + username(base::UTF16ToUTF8(form.username_value)) +#endif +{ +} PasswordFormDigest::PasswordFormDigest(const autofill::FormData& form) : scheme(PasswordForm::Scheme::kHtml), diff --git a/components/password_manager/core/browser/password_form_digest.h b/components/password_manager/core/browser/password_form_digest.h index bf5490e..aa42105 100644 --- a/components/password_manager/core/browser/password_form_digest.h +++ b/components/password_manager/core/browser/password_form_digest.h @@ -33,6 +33,9 @@ struct PasswordFormDigest { PasswordForm::Scheme scheme; std::string signon_realm; GURL url; +#if defined(TIZEN_AUTOFILL_FW) + std::string username; +#endif }; // For testing only. diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc index 39cb192..ed5f73a 100644 --- a/components/password_manager/core/browser/password_form_manager.cc +++ b/components/password_manager/core/browser/password_form_manager.cc @@ -174,6 +174,9 @@ PasswordFormManager::PasswordFormManager( // saving are supported. if (owned_form_fetcher_ && !observed_form()->is_gaia_with_skip_save_password_form) { +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " call Fetch()"; +#endif owned_form_fetcher_->Fetch(); WebAuthnCredentialsDelegate* delegate = diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc index bdf2d73..ec83f6d 100644 --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc @@ -58,6 +58,12 @@ using autofill::ACCOUNT_CREATION_PASSWORD; using autofill::FieldDataManager; using autofill::FieldRendererId; + +#if defined(TIZEN_AUTOFILL_FW) +#include "components/autofill/core/common/form_field_data.h" +#include "tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.h" +#endif + using autofill::FormData; using autofill::FormRendererId; using autofill::FormStructure; @@ -75,6 +81,10 @@ using password_manager::metrics_util::GaiaPasswordHashChange; namespace password_manager { namespace { +#if defined(TIZEN_AUTOFILL_FW) +const char kDefaultUserElement[] = "email"; +const char kDefaultPassElement[] = "pass"; +#endif // Shorten the name to spare line breaks. The code provides enough context // already. @@ -927,6 +937,9 @@ bool PasswordManager::IsAutomaticSavePromptAvailable() { if (logger) { logger->LogMessage(Logger::STRING_NO_PROVISIONAL_SAVE_MANAGER); } +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " No submitted_manager"; +#endif return false; } @@ -953,6 +966,9 @@ bool PasswordManager::ShouldBlockPasswordForSameOriginButDifferentScheme( void PasswordManager::OnPasswordFormsRendered( password_manager::PasswordManagerDriver* driver, const std::vector& visible_forms_data) { +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__; +#endif CreatePendingLoginManagers(driver, visible_forms_data); std::unique_ptr logger; if (password_manager_util::IsLoggingActive(client_)) { @@ -1041,6 +1057,13 @@ void PasswordManager::OnPasswordFormsRendered( } void PasswordManager::OnLoginSuccessful() { +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__; + auto webview = client_->GetWebview(); + if (!webview) + return; + autofill::AutofillRequestManager::GetInstance()->OnLogin(webview); +#endif if (client_->IsAutofillAssistantUIVisible()) { // Suppress prompts while Autofill Assistant UI is shown. return; @@ -1114,6 +1137,68 @@ void PasswordManager::OnLoginSuccessful() { "PasswordManager.SuccessfulLoginHappened", submitted_manager->GetSubmittedForm()->url.SchemeIsCryptographic()); +#if defined(TIZEN_AUTOFILL_FW) + FormData form = submitted_manager->GetSubmittedForm()->form_data; + + for (size_t i = 0; i < form.fields.size(); i++) { + if (form.fields[i].is_autofilled) { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ << "\t label : " + << base::UTF16ToUTF8(form.fields[i].label).c_str(); + LOG(ERROR) << "[Autofill] " << __FUNCTION__ + << " is_autofilled! do not send commit request"; + + owned_submitted_form_manager_.reset(); + return; + } + } + + std::string user_element = base::UTF16ToUTF8( + submitted_manager->GetSubmittedForm()->username_element); + std::string user_value = + base::UTF16ToUTF8(submitted_manager->GetSubmittedForm()->username_value); + std::string pass_element = base::UTF16ToUTF8( + submitted_manager->GetSubmittedForm()->password_element); + std::string pass_value = + base::UTF16ToUTF8(submitted_manager->GetSubmittedForm()->password_value); + + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " user_element : " << user_element.c_str() + << ", user_value : " << user_value.c_str() + << ", pass_element : " << pass_element.c_str(); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " origin : " + << submitted_manager->GetSubmittedForm()->url.spec().c_str() + << ", title : " << form.title.c_str(); + + if (user_element.empty()) + user_element = kDefaultUserElement; + + if (pass_element.empty()) + pass_element = kDefaultPassElement; + + GURL origin = submitted_manager->GetSubmittedForm()->url; + + // FIXME. Current autofill mechanism is to save what user enters originally in + // account name field into db. On the other hand, in google login scenes, user + // is allowed to enter only the text before '@'. Afterwards, when user selects + // old account to login, string passed to db will be "***@gmail.com", instead + // of "***". Since autofill code only knows "***", autofill action will not be + // triggered. So we append domain name here. + if (origin.host() == "accounts.google.com" && + user_value.find("@") == std::string::npos) { + LOG(ERROR) + << "[Autofill] user has not input suffix, will append @gmail.com"; + user_value.append("@gmail.com"); + } + + autofill::AutofillRequestManager::GetInstance()->CommitAutofill( + webview, user_element, user_value, pass_element, pass_value, origin, + form.title.c_str()); + + owned_submitted_form_manager_.reset(); + + return; +#endif + // If the form is eligible only for saving fallback, it shouldn't go here. DCHECK(!submitted_manager->GetPendingCredentials().only_for_fallback); diff --git a/components/password_manager/core/browser/password_manager_client.h b/components/password_manager/core/browser/password_manager_client.h index 1b6bf55..ba0800c 100644 --- a/components/password_manager/core/browser/password_manager_client.h +++ b/components/password_manager/core/browser/password_manager_client.h @@ -425,6 +425,9 @@ class PasswordManagerClient { // Records a Chrome Sync event that GAIA password reuse was detected. virtual void LogPasswordReuseDetectedEvent() = 0; +#if defined(TIZEN_AUTOFILL_FW) + virtual void* GetWebview() const { return nullptr; } +#endif // If the feature is enabled send an event to the enterprise reporting // connector server indicating that the user signed in to a website. diff --git a/components/password_manager/core/browser/password_store.cc b/components/password_manager/core/browser/password_store.cc index 6c6bc4c..755039f 100644 --- a/components/password_manager/core/browser/password_store.cc +++ b/components/password_manager/core/browser/password_store.cc @@ -43,6 +43,11 @@ #include "components/safe_browsing/core/common/safe_browsing_prefs.h" #include "components/sync/model/proxy_model_type_controller_delegate.h" +#if defined(TIZEN_AUTOFILL_FW) +#include "base/synchronization/waitable_event.h" +#include "tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.h" +#endif + namespace password_manager { namespace { @@ -237,7 +242,13 @@ void PasswordStore::Unblocklist(const PasswordFormDigest& form_digest, } void PasswordStore::GetLogins(const PasswordFormDigest& form, - base::WeakPtr consumer) { + base::WeakPtr consumer +#if defined(TIZEN_AUTOFILL_FW) + , + bool skip_checking_autofill, + void* view +#endif +) { DCHECK(main_task_runner_->RunsTasksInCurrentSequence()); if (!backend_) return; // Once the shutdown started, ignore new requests. @@ -262,11 +273,53 @@ void PasswordStore::GetLogins(const PasswordFormDigest& form, // `request_handler` that there are no affiliated logins. request_handler->AffiliatedLoginsClosure().Run({}); +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] PasswordStore::GetLogins, signon_realm: " + << form.signon_realm << ", origin: " << form.url.spec() + << ", username: " << form.username << ", view: " << view + << ", skip_checking_autofill: " << skip_checking_autofill; + if (!view) + return; + + if (!skip_checking_autofill) { + if (backend_) { + backend_->PostTaskToBackgroundTaskRunner( + base::BindOnce(&PasswordStore::CheckAutofillData, this, form, view, + request_handler->LoginsForFormClosure())); + } + } else { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " with view " << view + << " skip to check autofill"; + InjectAffiliationAndBrandingInformation( + request_handler->LoginsForFormClosure(), + std::vector>()); + } +#else // And request the regular logins for `form`. backend_->FillMatchingLoginsAsync(request_handler->LoginsForFormClosure(), FormSupportsPSL(form), {form}); +#endif } +#if defined(TIZEN_AUTOFILL_FW) +void PasswordStore::CheckAutofillData(const PasswordFormDigest& form, + void* view, + LoginsOrErrorReply callback) { + base::WaitableEvent done(base::WaitableEvent::ResetPolicy::AUTOMATIC, + base::WaitableEvent::InitialState::NOT_SIGNALED); + autofill::AutofillRequestManager::GetInstance()->CheckAutofillData( + view, &done, form.signon_realm, form.url, form.username); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " with view " << view + << " wait start!"; + done.Wait(); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " with view " << view + << " wait end!"; + InjectAffiliationAndBrandingInformation( + std::move(callback), + autofill::AutofillRequestManager::GetInstance()->GetResult(view)); +} +#endif + void PasswordStore::GetAutofillableLogins( base::WeakPtr consumer) { DCHECK(main_task_runner_->RunsTasksInCurrentSequence()); diff --git a/components/password_manager/core/browser/password_store.h b/components/password_manager/core/browser/password_store.h index 1b639a4..37c1076 100644 --- a/components/password_manager/core/browser/password_store.h +++ b/components/password_manager/core/browser/password_store.h @@ -109,10 +109,23 @@ class PasswordStore : public PasswordStoreInterface { const PasswordFormDigest& form_digest, base::OnceClosure completion = base::NullCallback()) override; void GetLogins(const PasswordFormDigest& form, - base::WeakPtr consumer) override; + base::WeakPtr consumer +#if defined(TIZEN_AUTOFILL_FW) + , + bool skip_checking_autofill = false, + void* view = nullptr +#endif + ) override; void GetAutofillableLogins( base::WeakPtr consumer) override; void GetAllLogins(base::WeakPtr consumer) override; + +#if defined(TIZEN_AUTOFILL_FW) + void CheckAutofillData(const PasswordFormDigest& form, + void* view, + LoginsOrErrorReply callback); +#endif + void GetAllLoginsWithAffiliationAndBrandingInformation( base::WeakPtr consumer) override; void AddObserver(Observer* observer) override; diff --git a/components/password_manager/core/browser/password_store_backend.h b/components/password_manager/core/browser/password_store_backend.h index 8719de2..6d44553 100644 --- a/components/password_manager/core/browser/password_store_backend.h +++ b/components/password_manager/core/browser/password_store_backend.h @@ -140,6 +140,10 @@ class PasswordStoreBackend { // Propagates sync initialization event. virtual void OnSyncServiceInitialized(syncer::SyncService* sync_service) = 0; +#if defined(TIZEN_AUTOFILL_FW) + virtual void PostTaskToBackgroundTaskRunner(base::OnceClosure task); +#endif + // Factory function for creating the backend. The Local backend requires the // provided `login_db_path` for storage and Android backend for migration // purposes. diff --git a/components/password_manager/core/browser/password_store_built_in_backend.cc b/components/password_manager/core/browser/password_store_built_in_backend.cc index 2b67979..fb1c44b 100644 --- a/components/password_manager/core/browser/password_store_built_in_backend.cc +++ b/components/password_manager/core/browser/password_store_built_in_backend.cc @@ -347,4 +347,11 @@ void PasswordStoreBuiltInBackend::RemoveFieldInfoByTime( std::move(completion)); } +#if defined(TIZEN_AUTOFILL_FW) +void PasswordStoreBuiltInBackend::PostTaskToBackgroundTaskRunner( + base::OnceClosure task) { + background_task_runner_->PostTask(FROM_HERE, std::move(task)); +} +#endif + } // namespace password_manager diff --git a/components/password_manager/core/browser/password_store_built_in_backend.h b/components/password_manager/core/browser/password_store_built_in_backend.h index f98ec1c..71aa363 100644 --- a/components/password_manager/core/browser/password_store_built_in_backend.h +++ b/components/password_manager/core/browser/password_store_built_in_backend.h @@ -104,6 +104,10 @@ class PasswordStoreBuiltInBackend : public PasswordStoreBackend, base::Time remove_end, base::OnceClosure completion) override; +#if defined(TIZEN_AUTOFILL_FW) + void PostTaskToBackgroundTaskRunner(base::OnceClosure task) override; +#endif + // Ensures that all methods are called on the main sequence. SEQUENCE_CHECKER(sequence_checker_); diff --git a/components/password_manager/core/browser/password_store_interface.h b/components/password_manager/core/browser/password_store_interface.h index b366f7c..12c3f70 100644 --- a/components/password_manager/core/browser/password_store_interface.h +++ b/components/password_manager/core/browser/password_store_interface.h @@ -124,7 +124,13 @@ class PasswordStoreInterface : public RefcountedKeyedService { // completion. // TODO(crbug.com/1217070): Use a smart pointer for consumer. virtual void GetLogins(const PasswordFormDigest& form, - base::WeakPtr consumer) = 0; + base::WeakPtr consumer +#if defined(TIZEN_AUTOFILL_FW) + , + bool skip_checking_autofill = false, + void* view = nullptr +#endif + ) = 0; // Gets the complete list of non-blocklist PasswordForms.`consumer` will be // notified on completion. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index d805754..cf3daa1 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc @@ -286,6 +286,11 @@ #include "content/browser/renderer_host/render_view_host_delegate_view.h" #endif +#if defined(TIZEN_AUTOFILL) +#include "components/autofill/content/common/mojom/autofill_driver.mojom.h" +#include "tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h" +#endif + namespace features { BASE_FEATURE(kDisableFrameNameUpdateOnNonCurrentRenderFrameHost, "DisableFrameNameUpdateOnNonCurrentRenderFrameHost", @@ -9631,6 +9636,18 @@ void RenderFrameHostImpl::SetUpMojoConnection() { ->RegisterAssociatedInterfaceBindersForRenderFrameHost( *this, *associated_registry_); +#if defined(TIZEN_AUTOFILL) + associated_registry_->AddInterface( + base::BindRepeating( + [](RenderFrameHostImpl* impl, + mojo::PendingAssociatedReceiver< + autofill::mojom::PasswordManagerDriver> receiver) { + password_manager::PasswordManagerClientEfl::BindReceiver( + std::move(receiver), impl); + }, + base::Unretained(this))); +#endif + mojo::PendingRemote remote_interfaces; GetMojomFrameInRenderer()->GetInterfaceProvider( diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 64796df..e5affe2 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -283,6 +283,10 @@ #define MAYBEVLOG DVLOG #endif +#if BUILDFLAG(IS_TIZEN_TV) +#include "tizen_src/ewk/efl_integration/common/content_switches_efl.h" +#endif + namespace content { namespace { @@ -3443,6 +3447,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDiscardableMemoryLimit, switches::kDiscardableMemoryPurgeDelay, #endif +#if BUILDFLAG(IS_TIZEN_TV) + switches::kTizenAppId, +#endif }; renderer_cmd->CopySwitchesFrom(browser_cmd, kSwitchNames, std::size(kSwitchNames)); diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 01636ff..93e943a 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc @@ -1070,6 +1070,10 @@ void RenderWidgetHostImpl::OnGetSelectionRect(const gfx::Rect& rect) { return; view_->OnSelectionRectReceived(rect); } + +void RenderWidgetHostImpl::ResetLastInteractedElements() { + blink_widget_->ResetLastInteractedElements(); +} #endif #if defined(TIZEN_VIDEO_HOLE) diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 514de59..8600050 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h @@ -459,6 +459,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl void SelectFocusedLink(); void RequestSelectionRect(); void OnGetSelectionRect(const gfx::Rect& rect); + void ResetLastInteractedElements(); #endif #if defined(TIZEN_VIDEO_HOLE) diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index 38a8e7a0..f803e29 100755 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -75,6 +75,9 @@ BuildRequires: pkgconfig(capi-system-device) BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(capi-system-sensor) BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(capi-ui-autofill) +BuildRequires: pkgconfig(capi-ui-autofill-common) +BuildRequires: pkgconfig(capi-ui-autofill-service) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(ecore) BuildRequires: pkgconfig(ecore-evas) diff --git a/third_party/blink/public/mojom/widget/platform_widget.mojom b/third_party/blink/public/mojom/widget/platform_widget.mojom index a923c1c..0cec2c3 100644 --- a/third_party/blink/public/mojom/widget/platform_widget.mojom +++ b/third_party/blink/public/mojom/widget/platform_widget.mojom @@ -133,6 +133,10 @@ interface Widget { SetLongPollingGlobalTimeout(uint64 timeout); [EnableIf=is_efl] + ResetLastInteractedElements(); + + + [EnableIf=is_efl] PrintToPdf(uint32 width, uint32 height, mojo_base.mojom.FilePath filename); [EnableIf=tizen_video_hole] diff --git a/third_party/blink/public/web/web_autofill_client.h b/third_party/blink/public/web/web_autofill_client.h index c57df43..a18cfb8 100644 --- a/third_party/blink/public/web/web_autofill_client.h +++ b/third_party/blink/public/web/web_autofill_client.h @@ -69,6 +69,10 @@ class WebAutofillClient { const WebFormControlElement& element, const WebString& old_value) {} +#if defined(TIZEN_AUTOFILL_FW) + virtual void ForceResetLastInteractedElements() {} +#endif + virtual void DidCompleteFocusChangeInFrame() {} virtual void DidReceiveLeftMouseDownOrGestureTapInNode(const WebNode&) {} diff --git a/third_party/blink/public/web/web_element.h b/third_party/blink/public/web/web_element.h index ee97a96..b88d7ce 100644 --- a/third_party/blink/public/web/web_element.h +++ b/third_party/blink/public/web/web_element.h @@ -140,6 +140,10 @@ class BLINK_EXPORT WebElement : public WebNode { // of the URL functionality. void UseCountParamUrlUsageIfNeeded(bool is_pdf) const; +#if BUILDFLAG(IS_TIZEN_TV) + BLINK_EXPORT void Focus(); +#endif + #if INSIDE_BLINK WebElement(Element*); WebElement& operator=(Element*); diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h index 6ec3917..285229a 100644 --- a/third_party/blink/public/web/web_local_frame.h +++ b/third_party/blink/public/web/web_local_frame.h @@ -193,6 +193,9 @@ class BLINK_EXPORT WebLocalFrame : public WebFrame { virtual void SetAutofillClient(WebAutofillClient*) = 0; virtual WebAutofillClient* AutofillClient() = 0; +#if defined(TIZEN_AUTOFILL_FW) + virtual void ResetLastInteractedElements() = 0; +#endif virtual void SetContentCaptureClient(WebContentCaptureClient*) = 0; virtual WebContentCaptureClient* ContentCaptureClient() const = 0; diff --git a/third_party/blink/renderer/core/exported/web_element.cc b/third_party/blink/renderer/core/exported/web_element.cc index 4289ba9..0d06c05 100644 --- a/third_party/blink/renderer/core/exported/web_element.cc +++ b/third_party/blink/renderer/core/exported/web_element.cc @@ -262,4 +262,9 @@ Image* WebElement::GetImage() { return Unwrap()->ImageContents(); } +#if BUILDFLAG(IS_TIZEN_TV) +void WebElement::Focus() { + Unwrap()->Focus(); +} +#endif } // namespace blink diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc index 3ed5097..9be4743 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc @@ -4252,6 +4252,16 @@ gfx::Rect WebFrameWidgetImpl::RequestSelectionRect() { return gfx::Rect(View()->CurrentSelectionRect()); } +void WebFrameWidgetImpl::ResetLastInteractedElements() { +#if defined(TIZEN_AUTOFILL_FW) + if (!View()) + return; + + if (auto* frame = View()->FocusedFrame()) + frame->ResetLastInteractedElements(); +#endif +} + void WebFrameWidgetImpl::PrintToPdf(uint32_t width, uint32_t height, const base::FilePath& filename) { diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h index 098e503..1ffa652 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h @@ -716,6 +716,7 @@ class CORE_EXPORT WebFrameWidgetImpl SkColor GetBackgroundColor() override; gfx::RectF UpdateFocusedNodeBounds() override; void SetLongPollingGlobalTimeout(uint64_t timeout) override; + void ResetLastInteractedElements() override; void PrintToPdf(uint32_t width, uint32_t height, const base::FilePath& filename) override; diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc index c041fe2..cb4f991 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc @@ -2618,6 +2618,12 @@ WebAutofillClient* WebLocalFrameImpl::AutofillClient() { return autofill_client_; } +#if defined(TIZEN_AUTOFILL_FW) +void WebLocalFrameImpl::ResetLastInteractedElements() { + autofill_client_->ForceResetLastInteractedElements(); +} +#endif + void WebLocalFrameImpl::SetContentCaptureClient( WebContentCaptureClient* content_capture_client) { content_capture_client_ = content_capture_client; diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h index b226256..5cf3aa8 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h @@ -252,6 +252,9 @@ class CORE_EXPORT WebLocalFrameImpl final void ReplaceSelection(const WebString&) override; void DeleteSurroundingText(int before, int after) override; void DeleteSurroundingTextInCodePoints(int before, int after) override; +#if defined(TIZEN_AUTOFILL_FW) + void ResetLastInteractedElements() override; +#endif void SetTextCheckClient(WebTextCheckClient*) override; void SetSpellCheckPanelHostClient(WebSpellCheckPanelHostClient*) override; WebSpellCheckPanelHostClient* SpellCheckPanelHostClient() const override { diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc index dbeadca..386b192 100644 --- a/third_party/blink/renderer/platform/widget/widget_base.cc +++ b/third_party/blink/renderer/platform/widget/widget_base.cc @@ -510,6 +510,10 @@ void WidgetBase::PrintToPdf(uint32_t width, client_->PrintToPdf(width, height, filename); } +void WidgetBase::ResetLastInteractedElements() { + client_->ResetLastInteractedElements(); +} + void WidgetBase::QueryInputType(QueryInputTypeCallback callback) { std::move(callback).Run(client_->QueryInputType()); } diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_party/blink/renderer/platform/widget/widget_base.h index e1bda87..b3b9fe2 100644 --- a/third_party/blink/renderer/platform/widget/widget_base.h +++ b/third_party/blink/renderer/platform/widget/widget_base.h @@ -154,6 +154,7 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget, void SelectClosestWord(uint32_t x, uint32_t y) override; void SelectFocusedLink() override; void RequestSelectionRect(RequestSelectionRectCallback callback) override; + void ResetLastInteractedElements() override; #endif #if defined(TIZEN_VIDEO_HOLE) void SetVideoHoleForRender(bool enable) override; diff --git a/third_party/blink/renderer/platform/widget/widget_base_client.h b/third_party/blink/renderer/platform/widget/widget_base_client.h index 136d9815..1fb024d 100644 --- a/third_party/blink/renderer/platform/widget/widget_base_client.h +++ b/third_party/blink/renderer/platform/widget/widget_base_client.h @@ -185,6 +185,7 @@ class WidgetBaseClient { virtual void SelectClosestWord(uint32_t x, uint32_t y) {} virtual void SelectFocusedLink() {} virtual gfx::Rect RequestSelectionRect() { return gfx::Rect(); } + virtual void ResetLastInteractedElements() {} #endif #if defined(TIZEN_VIDEO_HOLE) virtual void SetVideoHoleForRender(bool enable) {} diff --git a/tizen_src/build/BUILD.gn b/tizen_src/build/BUILD.gn index c35acbd..d6e0bae 100644 --- a/tizen_src/build/BUILD.gn +++ b/tizen_src/build/BUILD.gn @@ -318,6 +318,63 @@ config("capi-system-sensor-public") { } } +config("capi-ui-autofill") { + if (tizen_autofill_fw) { + ldflags = [ "-capi-ui-autofill" ] + } +} + +tizen_pkg_config("libcapi-ui-autofill") { + packages = [] + if (tizen_autofill_fw) { + packages = [ "capi-ui-autofill" ] + } +} + +config("capi-ui-autofill-public") { + if (tizen_autofill_fw) { + cflags = [ "-capi-ui-autofill" ] + } +} + +config("capi-ui-autofill-common") { + if (tizen_autofill_fw) { + ldflags = [ "-capi-ui-autofill-common" ] + } +} + +tizen_pkg_config("libcapi-ui-autofill-common") { + packages = [] + if (tizen_autofill_fw) { + packages = [ "capi-ui-autofill-common" ] + } +} + +config("capi-ui-autofill-common-public") { + if (tizen_autofill_fw) { + cflags = [ "-capi-ui-autofill-common" ] + } +} + +config("capi-ui-autofill-service") { + if (tizen_autofill_fw) { + ldflags = [ "-capi-ui-autofill-service" ] + } +} + +tizen_pkg_config("libcapi-ui-autofill-service") { + packages = [] + if (tizen_autofill_fw) { + packages = [ "capi-ui-autofill-service" ] + } +} + +config("capi-ui-autofill-service-public") { + if (tizen_autofill_fw) { + cflags = [ "-capi-ui-autofill-service" ] + } +} + config("capi-system-system-settings") { if (is_tizen) { ldflags = [ "-lcapi-system-system-settings" ] diff --git a/tizen_src/build/config/BUILD.gn b/tizen_src/build/config/BUILD.gn index 92af58d..f86bfd2 100644 --- a/tizen_src/build/config/BUILD.gn +++ b/tizen_src/build/config/BUILD.gn @@ -62,8 +62,11 @@ config("tizen_feature_flags") { if (tizen_audio_io) { defines += [ "TIZEN_MULTIMEDIA_USE_CAPI_AUDIO_IO" ] } - if (tizen_autofill_support) { - defines += [ "TIZEN_AUTOFILL_SUPPORT" ] + if (tizen_autofill) { + defines += [ "TIZEN_AUTOFILL" ] + if (tizen_autofill_fw) { + defines += [ "TIZEN_AUTOFILL_FW" ] + } } if (use_ttrace) { defines += [ "USE_TTRACE" ] diff --git a/tizen_src/build/config/tizen_features.gni b/tizen_src/build/config/tizen_features.gni index 88e4c5c..2cf0fc4 100644 --- a/tizen_src/build/config/tizen_features.gni +++ b/tizen_src/build/config/tizen_features.gni @@ -61,13 +61,15 @@ declare_args() { tizen_audio_io = false tizen_web_speech_recognition = false - tizen_autofill_support = false + tizen_autofill = false + tizen_autofill_fw = false } -if (tizen_product_tv) { - tizen_autofill_support = false -} else { - tizen_autofill_support = true +if (is_tizen) { + tizen_autofill = true + if (tizen_product_tv) { + tizen_autofill_fw = true + } } if (use_ttrace) { diff --git a/tizen_src/ewk/efl_integration/BUILD.gn b/tizen_src/ewk/efl_integration/BUILD.gn index 54a8a64..eacbd7d 100755 --- a/tizen_src/ewk/efl_integration/BUILD.gn +++ b/tizen_src/ewk/efl_integration/BUILD.gn @@ -196,8 +196,6 @@ shared_library("chromium-ewk") { sources = [ "authentication_challenge_popup.cc", "authentication_challenge_popup.h", - "browser/autofill_popup_view_efl.cc", - "browser/autofill_popup_view_efl.h", "browser/background_sync_controller_efl.cc", "browser/background_sync_controller_efl.h", "browser/browsing_data_remover_efl.cc", @@ -306,10 +304,6 @@ shared_library("chromium-ewk") { # Make use of Android webview"s simplified pref class. "browser/autofill/autocomplete_history_manager_factory.cc", "browser/autofill/autocomplete_history_manager_factory.h", - "browser/autofill/autofill_client_efl.cc", - "browser/autofill/autofill_client_efl.h", - "browser/autofill/personal_data_manager_factory.cc", - "browser/autofill/personal_data_manager_factory.h", "browser/favicon/favicon_commands.cc", "browser/favicon/favicon_commands.h", "browser/favicon/favicon_database.cc", @@ -623,6 +617,28 @@ shared_library("chromium-ewk") { ] } + if (tizen_autofill) { + sources += [ + "browser/autofill/autofill_client_efl.cc", + "browser/autofill/autofill_client_efl.h", + "browser/autofill/personal_data_manager_factory.cc", + "browser/autofill/personal_data_manager_factory.h", + "browser/autofill_popup_view_efl.cc", + "browser/autofill_popup_view_efl.h", + ] + + if (tizen_autofill_fw) { + sources += [ + "browser/autofill/autofill_login_request.cc", + "browser/autofill/autofill_login_request.h", + "browser/autofill/autofill_request.cc", + "browser/autofill/autofill_request.h", + "browser/autofill/autofill_request_manager.cc", + "browser/autofill/autofill_request_manager.h", + ] + } + } + if (tizen_product_tv) { sources += [ "common/application_type.cc", diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.cc b/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.cc index 692b5d1..7c55513 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.cc +++ b/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/autofill/autocomplete_history_manager_factory.h" @@ -63,4 +63,4 @@ AutocompleteHistoryManagerFactoryEfl::~AutocompleteHistoryManagerFactoryEfl() { } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.h b/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.h index e9c381b..7089c83 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.h +++ b/tizen_src/ewk/efl_integration/browser/autofill/autocomplete_history_manager_factory.h @@ -5,7 +5,7 @@ #ifndef AUTOFILL_AUTOCOMPLETE_HISTORY_MANAGER_FACTORY_H_ #define AUTOFILL_AUTOCOMPLETE_HISTORY_MANAGER_FACTORY_H_ -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "base/compiler_specific.h" #include "base/containers/id_map.h" #include "base/memory/ref_counted.h" @@ -49,5 +49,5 @@ class AutocompleteHistoryManagerFactoryEfl { }; } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // AUTOFILL_AUTOCOMPLETE_HISTORY_MANAGER_FACTORY_H_ diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc index 8b671fe..8268f6a 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/autofill/autofill_client_efl.h" @@ -113,6 +113,13 @@ void AutofillClientEfl::ShowAutofillPopup( const PopupOpenArgs& open_args, base::WeakPtr delegate) { DCHECK(web_contents_); + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " suggestions.size : " << open_args.suggestions.size(); +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " Autofill fw is enabled. return directly"; + return; +#endif // Do not show sugestions when Remember form data is disabled if (!IsAutocompleteSavingEnabled()) return; @@ -207,6 +214,11 @@ void AutofillClientEfl::ExecuteCommand(int id) { } void AutofillClientEfl::HideAutofillPopup(PopupHidingReason reason) { +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " Autofill fw is enabled. return directly"; + return; +#endif if (popup_controller_) { popup_controller_->Hide(); } @@ -278,6 +290,11 @@ payments::PaymentsClient* AutofillClientEfl::GetPaymentsClient() { void AutofillClientEfl::ShowSavePasswordPopup( std::unique_ptr form_to_save) { +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " Autofill fw is enabled. return directly"; + return; +#endif if (GetOrCreatePopupController()) popup_controller_->ShowSavePasswordPopup(std::move(form_to_save)); } @@ -320,6 +337,15 @@ void AutofillClientEfl::UpdateAutofillIfRequired() { } } +#if defined(TIZEN_AUTOFILL_FW) +void AutofillClientEfl::ResetLastInteractedElements() { + auto* rwhva = static_cast( + web_contents_->GetRenderWidgetHostView()); + if (rwhva) + rwhva->host()->ResetLastInteractedElements(); +} +#endif + void AutofillClientEfl::DidChangeFocusedNodeBounds( const gfx::RectF& node_bounds) { if (popup_controller_) @@ -473,4 +499,4 @@ void AutofillClientEfl::HideTouchToFillCreditCard() { WEB_CONTENTS_USER_DATA_KEY_IMPL(AutofillClientEfl); } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h index b0b3894..e6ea207 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_client_efl.h @@ -4,7 +4,7 @@ #ifndef AUTOFILL_MANAGER_DELEGATE_EFL_H #define AUTOFILL_MANAGER_DELEGATE_EFL_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "base/callback.h" #include "base/compiler_specific.h" @@ -156,6 +156,9 @@ class AutofillClientEfl std::unique_ptr form_to_save); void SetEWebView(EWebView* view) { webview_ = view; } void UpdateAutofillIfRequired(); +#if defined(TIZEN_AUTOFILL_FW) + void ResetLastInteractedElements(); +#endif void DidChangeFocusedNodeBounds(const gfx::RectF& node_bounds); bool IsAutocompleteSavingEnabled(); FormDataImporter* GetFormDataImporter(); @@ -189,7 +192,7 @@ class AutofillClientEfl } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // AUTOFILL_CLIENT_EFL_H diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.cc b/tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.cc new file mode 100644 index 0000000..143bd49 --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.cc @@ -0,0 +1,83 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "browser/autofill/autofill_login_request.h" + +namespace autofill { + +AutofillLoginRequest::AutofillLoginRequest(std::string& signon_realm, + GURL& origin, + std::string& username) + : signon_realm_(signon_realm), origin_(origin), username_(username) {} + +AutofillLoginRequest::~AutofillLoginRequest() {} + +void AutofillLoginRequest::AddGroup() { + AutofillGroup group; + groups_.push_back(group); +} + +void AutofillLoginRequest::AddItem(std::string& id, + std::string& value, + autofill_hint_e hint) { + if (groups_.empty()) { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ << " group is empty"; + return; + } + + AutofillItem item; + item.id_ = id; + item.value_ = value; + item.hint_ = hint; + + groups_.back().items_.push_back(item); +} + +void AutofillLoginRequest::FillMatchingLogins() { + LOG(INFO) << "[Autofill] " << __FUNCTION__; + if (groups_.empty()) { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ << " group is empty"; + return; + } + + auto group = groups_.back(); + int count = group.items_.size(); + password_manager::PasswordForm account; + + account.signon_realm = signon_realm_; + account.url = origin_; + account.scheme = password_manager::PasswordForm::Scheme::kHtml; + account.type = password_manager::PasswordForm::Type::kFormSubmission; + account.blocked_by_user = false; + + for (int i = 0; i < count; i++) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << " id : " << group.items_[i].id_.c_str() + << " hint : " << group.items_[i].hint_; + switch (group.items_[i].hint_) { + case AUTOFILL_HINT_ID: + account.username_element = base::UTF8ToUTF16(group.items_[i].id_); + account.username_value = base::UTF8ToUTF16(group.items_[i].value_); + break; + case AUTOFILL_HINT_PASSWORD: + account.password_element = base::UTF8ToUTF16(group.items_[i].id_); + account.password_value = base::UTF8ToUTF16(group.items_[i].value_); + break; + default: + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " hint error"; + return; + } + } + fetched_forms_.push_back(std::move(account)); +} + +std::vector> +AutofillLoginRequest::GetResult() { + std::vector> res; + for (const auto& form : fetched_forms_) + res.push_back(std::make_unique(form)); + return res; +} + +} // namespace autofill diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.h b/tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.h new file mode 100644 index 0000000..9792487 --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_login_request.h @@ -0,0 +1,58 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef AUTOFILL_LOGIN_REQUEST_H +#define AUTOFILL_LOGIN_REQUEST_H + +#include + +#include "base/memory/ref_counted.h" +#include "base/strings/utf_string_conversions.h" +#include "components/password_manager/core/browser/password_form.h" +#include "components/password_manager/core/browser/password_store.h" + +namespace autofill { + +class AutofillLoginRequest { + public: + AutofillLoginRequest(std::string& signon_realm, + GURL& origin, + std::string& username); + ~AutofillLoginRequest(); + + AutofillLoginRequest(const AutofillLoginRequest&) = delete; + AutofillLoginRequest& operator=(const AutofillLoginRequest&) = delete; + + void AddGroup(); + void AddItem(std::string& id, std::string& value, autofill_hint_e hint); + void FillMatchingLogins(); + const GURL& Origin() { return origin_; } // LCOV_EXCL_LINE + std::string& Username() { return username_; } // LCOV_EXCL_LINE + + // fetched_forms_ may be reused (eg. google login case). + // In order to avoid redundant communication with autofill service, + // make copies of already fetched forms + std::vector> GetResult(); + + private: + struct AutofillItem { + std::string id_; + std::string value_; + autofill_hint_e hint_; + }; + + struct AutofillGroup { + std::vector items_; + }; + + std::string signon_realm_; + GURL origin_; + std::string username_; + std::vector groups_; + + std::vector fetched_forms_; +}; + +} // namespace autofill +#endif // AUTOFILL_LOGIN_REQUEST_H diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_request.cc b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request.cc new file mode 100644 index 0000000..33cb953 --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request.cc @@ -0,0 +1,446 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "browser/autofill/autofill_request.h" + +namespace { + +using autofill::AutofillRequest; + +void ConnectionStatusChangedCb(autofill_h autofill, + autofill_connection_status_e status, + void* obj) { + AutofillRequest* self = static_cast(obj); + self->ConnectionStatusChanged(status); +} + +bool AutofillDataItemCb(autofill_fill_response_item_h item, void* obj) { + AutofillRequest* self = static_cast(obj); + return self->AutofillDataItem(item); +} + +bool AutofillDataGroupCb(autofill_fill_response_group_h group_h, void* obj) { + AutofillRequest* self = static_cast(obj); + return self->AutofillDataGroup(group_h); +} + +void AutofillDataCb(autofill_h ah, + autofill_fill_response_h fill_response, + void* obj) { + AutofillRequest* self = static_cast(obj); + self->AutofillData(fill_response); +} + +void AuthInfoCb(autofill_h ah, autofill_auth_info_h auth_info_h, void* obj) { + AutofillRequest* self = static_cast(obj); + self->AuthInfo(auth_info_h); +} + +// called when user clicks 'cancel' or timout scenario +void AutofillErrorInfoCb(autofill_h ah, + autofill_error_info_h error_info, + void* obj) { + AutofillRequest* self = static_cast(obj); + self->AutofillErrorInfo(error_info); +} + +// Autofill team requires that all data stored in DB should be in https. +// So need to replace http to https. +void ConvertToHttps(std::string& origin) { + std::string from(url::kHttpScheme); + std::string to(url::kHttpsScheme); + size_t start_pos = 0; + while ((start_pos = origin.find(from, start_pos)) != std::string::npos) { + origin.replace(start_pos, from.length(), to); + start_pos += to.length(); + } + LOG(INFO) << "[Autofill] replace http to https: " << origin; +} + +} // namespace + +namespace autofill { + +void AutofillRequest::ConnectionStatusChanged( + autofill_connection_status_e status) { + char* result; + if (AUTOFILL_CONNECTION_STATUS_CONNECTED == status) { + ChangeStateTo(State::kReady); + result = " connected"; + } else { + ChangeStateTo(State::kMute); + if (AUTOFILL_CONNECTION_STATUS_DISCONNECTED == status) + result = " disconnected"; + else if (AUTOFILL_CONNECTION_STATUS_REJECTED == status) + result = " rejected"; + else + result = " unknown"; + } + LOG(INFO) << "[Autofill] " << __FUNCTION__ << result; +} + +void AutofillRequest::PrepareAutofillObjects() { + /* LCOV_EXCL_START */ + if (view_info_) { + autofill_view_info_destroy(view_info_); + view_info_ = nullptr; + } + + if (!item_) { + autofill_item_create(&item_); + autofill_item_set_autofill_hint(item_, AUTOFILL_HINT_ID); + } + + if (!password_) { + autofill_item_create(&password_); + autofill_item_set_autofill_hint(password_, AUTOFILL_HINT_PASSWORD); + } + /* LCOV_EXCL_STOP */ +} + +bool AutofillRequest::AutofillDataItem(autofill_fill_response_item_h item) { + char* id = nullptr; + char* value = nullptr; + autofill_hint_e hint; + autofill_fill_response_item_get_id(item, &id); + autofill_fill_response_item_get_value(item, &value); + autofill_fill_response_item_get_autofill_hint(item, &hint); + + std::string str_id(id); + std::string str_value(value); + if (!(str_id.empty()) && !(str_value.empty())) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " AddItem: " << str_id.c_str() + << " hint: " << hint; + login_request_->AddItem(str_id, str_value, hint); + } + + if (id) + free(id); + if (value) + free(value); + return true; +} + +bool AutofillRequest::AutofillDataGroup( + autofill_fill_response_group_h group_h) { + LOG(INFO) << "[Autofill] " << __FUNCTION__; + login_request_->AddGroup(); + autofill_fill_response_group_foreach_item(group_h, AutofillDataItemCb, this); + return true; +} + +void AutofillRequest::AutofillData(autofill_fill_response_h fill_response) { + autofill_fill_response_foreach_group(fill_response, AutofillDataGroupCb, + this); + + // TODO(djmix.kim) : Only one autofill data will be sent by autofill app. + login_request_->FillMatchingLogins(); + + ChangeStateTo(State::kFetched); + fetch_event_->Signal(); +} + +void AutofillRequest::RequestAutofillData() { + autofill_fill_response_set_received_cb(autofill_, AutofillDataCb, this); + autofill_error_info_set_received_cb(autofill_, AutofillErrorInfoCb, this); + // After authen popup, AutofillDataCb is called. + // Which means, popup is triggered in autofill_fill_request, but before + // calling AutofillDataCb + int ret = autofill_fill_request(autofill_, view_info_); + + if (ret == AUTOFILL_ERROR_NONE) { + LOG(INFO) << "[Autofill] fill_request returned no error"; + } else { + LOG(ERROR) << "[Autofill] fill_request returned error: " << ret; + ChangeStateTo(State::kReady); + fetch_event_->Signal(); + } +} + +void AutofillRequest::AuthInfo(autofill_auth_info_h auth_info_h) { + char* view_id = nullptr; + autofill_auth_info_get_view_id(auth_info_h, &view_id); + std::string origin = login_request_->Origin().spec(); + if (login_request_->Origin().SchemeIs(url::kHttpScheme)) + ConvertToHttps(origin); + + if ((!view_id) || origin.compare(view_id)) { + LOG(ERROR) << "[Autofill] view_id not match! value in auth_info: " + << view_id << ", value in login_request_: " << origin + << ", fetching procedure terminates here"; + ChangeStateTo(State::kReady); + fetch_event_->Signal(); + if (view_id) + free(view_id); + return; + } + + bool autofill_data_present = false; + autofill_auth_info_get_autofill_data_present(auth_info_h, + &autofill_data_present); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << ", auth origin: " << view_id + << ", exist autofill data: " << autofill_data_present; + free(view_id); + + if (autofill_data_present) { + RequestAutofillData(); + } else { + ChangeStateTo(State::kFetched); // empty result + fetch_event_->Signal(); + } +} + +void AutofillRequest::AutofillErrorInfo(autofill_error_info_h error_info) { + LOG(INFO) << "[Autofill] ErrorInfo callback triggered at state " + << ShowState(state_); + if (State::kFetching == state_) { + ChangeStateTo(State::kReady); + fetch_event_->Signal(); + } +} + +void AutofillRequest::CheckAutofillData(base::WaitableEvent* fetch_event, + std::string& signon_realm, + GURL& origin, + std::string& username) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << ", signon_realm: " << signon_realm + << ", origin: " << origin.spec() << ", username: " << username + << ", now state: " << ShowState(state_); + switch (state_) { + case State::kReady: + case State::kCommitted: + break; + case State::kFetched: + // TODO?: This is workaround. AutofillRequest should handle multiple + // login requests. + if (login_request_->Origin() == origin) { + LOG(INFO) << "[Autofill]" << __FUNCTION__ + << " reuse last time fetched result for same host: " + << origin.spec(); + fetch_event->Signal(); + return; + } + break; + default: + fetch_event->Signal(); + return; + } + std::string view_id = origin.spec(); + if (origin.SchemeIs(url::kHttpScheme)) + ConvertToHttps(view_id); + + ChangeStateTo(State::kFetching); + PrepareAutofillObjects(); + login_request_.reset( + new AutofillLoginRequest(signon_realm, origin, username)); + fetch_event_ = fetch_event; + + char* app_id = nullptr; + app_get_id(&app_id); + autofill_item_set_value(item_, username.c_str()); + autofill_view_info_create(&view_info_); + autofill_view_info_set_app_id(view_info_, app_id); + autofill_view_info_set_view_id(view_info_, view_id.c_str()); + autofill_view_info_add_item(view_info_, item_); + autofill_view_info_add_item(view_info_, password_); + if (app_id) + free(app_id); + + autofill_auth_info_set_received_cb(autofill_, AuthInfoCb, this); + int ret = autofill_auth_info_request(autofill_, view_info_); + if (AUTOFILL_ERROR_NONE != ret) { + LOG(ERROR) << "[Autofill] failed to request auth info. error: " << ret; + ChangeStateTo(State::kReady); + fetch_event_->Signal(); + } +} + +void AutofillRequest::CommitAutofill(std::string user_element, + std::string user_value, + std::string pass_element, + std::string pass_value, + GURL& origin, + std::string title) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << ", now state: " << ShowState(state_); + switch (state_) { + case State::kFetched: + case State::kReady: + case State::kCommitted: + break; + default: + return; + } + ChangeStateTo(State::kCommitting); + std::string view_id = origin.spec(); + if (origin.SchemeIs(url::kHttpScheme)) + ConvertToHttps(view_id); + + autofill_save_item_h save_item_id = nullptr; + autofill_save_item_h save_item_password = nullptr; + + autofill_save_item_create(&save_item_id); + autofill_save_item_set_autofill_hint(save_item_id, AUTOFILL_HINT_ID); + autofill_save_item_set_id(save_item_id, user_element.c_str()); + autofill_save_item_set_label(save_item_id, user_element.c_str()); + autofill_save_item_set_value(save_item_id, user_value.c_str()); + + autofill_save_item_create(&save_item_password); + autofill_save_item_set_autofill_hint(save_item_password, + AUTOFILL_HINT_PASSWORD); + autofill_save_item_set_id(save_item_password, pass_element.c_str()); + autofill_save_item_set_label(save_item_password, pass_element.c_str()); + autofill_save_item_set_value(save_item_password, pass_value.c_str()); + + autofill_save_view_info_h save_view_info = nullptr; + char* app_id = nullptr; + app_get_id(&app_id); + + // create autofill save view info + autofill_save_view_info_create(&save_view_info); + autofill_save_view_info_set_app_id(save_view_info, app_id); + autofill_save_view_info_set_view_id(save_view_info, view_id.c_str()); + autofill_save_view_info_set_view_title(save_view_info, title.c_str()); + + autofill_save_view_info_add_item(save_view_info, save_item_id); + autofill_save_view_info_add_item(save_view_info, save_item_password); + if (app_id) + free(app_id); + + int ret = autofill_commit(autofill_, save_view_info); + if (ret == AUTOFILL_ERROR_NONE) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " Succeeded to commit"; + ChangeStateTo(State::kCommitted); + } else { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ + << " Failed to commit. error: " << ret; + ChangeStateTo(State::kReady); + } + + autofill_save_item_destroy(save_item_id); + autofill_save_item_destroy(save_item_password); + autofill_save_view_info_destroy(save_view_info); +} + +std::vector> +AutofillRequest::GetResult() { + if (State::kFetched == state_) + return login_request_->GetResult(); + else + return std::vector>(); +} + +void AutofillRequest::OnLogin() { + if (State::kFetched == state_) + ChangeStateTo(State::kReady); + else if (login_request_) { + LOG(INFO) << "[Autofill] logged in at state " << ShowState(state_) << ", " + << login_request_->Origin().spec(); + } else { + LOG(INFO) << "[Autofill] logged in at state " << ShowState(state_) + << ", login_request_ null"; + } +} + +AutofillRequest::AutofillRequest() : state_(State::kBirth) { + // Ideally, create autofill objects and connect only when need(on login forms + // observed), instead of in constructor + // However, due to constraints of autofill FW, connect here + Connect(); +} + +bool AutofillRequest::ChangeStateTo(State to) { + bool normal = false; + switch (to) { + case State::kReady: + normal = State::kMute != state_; + break; + case State::kFetching: + normal = State::kReady == state_ || State::kFetched == state_ || + State::kCommitted == state_; + break; + case State::kFetched: + normal = State::kFetching == state_; + break; + case State::kCommitting: + normal = State::kReady == state_ || State::kFetched == state_; + break; + case State::kCommitted: + normal = State::kCommitting == state_; + break; + case State::kMute: + normal = State::kBirth == state_; + break; + } + if (!normal) { + LOG(ERROR) << "[Autofill] unknown state transition from " + << ShowState(state_) << " to " << ShowState(to); + } + state_ = to; + return normal; +} + +// static +const char* AutofillRequest::ShowState(State value) { + switch (value) { + case State::kReady: + return "ready"; + case State::kFetched: + return "fetched"; + case State::kCommitted: + return "committed"; + case State::kBirth: + return "birth"; + case State::kMute: + return "mute"; + case State::kFetching: + return "fetching"; + case State::kCommitting: + return "committing"; + } +} + +bool AutofillRequest::Connect() { + DCHECK(State::kBirth == state_); + int ret = autofill_create(&autofill_); + if (ret != AUTOFILL_ERROR_NONE) { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ + << " Failed to create autofill. error: " << ret; + ChangeStateTo(State::kMute); + return false; + } + + ret = autofill_connect(autofill_, ConnectionStatusChangedCb, this); + if (AUTOFILL_ERROR_NONE == ret) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " returning no error"; + } else { + ChangeStateTo(State::kMute); + LOG(ERROR) << "[Autofill] " << __FUNCTION__ << " returning error: " << ret; + } + return AUTOFILL_ERROR_NONE == ret; +} + +AutofillRequest::~AutofillRequest() { + LOG(INFO) << "[Autofill] " << __FUNCTION__ + << ", now state: " << ShowState(state_) << ", view_info_ " + << view_info_ << ", item_ " << item_ << ", password_ " << password_ + << ", autofill_ " << autofill_; + // should inform autofill FW about the cancellation of request + if (State::kFetching == state_) { + autofill_cancel_fill_request(autofill_, view_info_); + fetch_event_->Signal(); + } + // clear autofill object + if (view_info_) + autofill_view_info_destroy(view_info_); + if (item_) + autofill_item_destroy(item_); + if (password_) + autofill_item_destroy(password_); + if (autofill_) + autofill_destroy(autofill_); +} + +} // namespace autofill diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_request.h b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request.h new file mode 100644 index 0000000..fcf6058 --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request.h @@ -0,0 +1,93 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef AUTOFILL_REQUEST_H +#define AUTOFILL_REQUEST_H + +#include +#include +#include +#include +#include + +#include "autofill_login_request.h" +#include "base/synchronization/waitable_event.h" +#include "components/password_manager/core/browser/password_form.h" +#include "components/password_manager/core/browser/password_store.h" + +namespace autofill { + +class AutofillRequest { + public: + AutofillRequest(); + ~AutofillRequest(); + + AutofillRequest(const AutofillRequest&) = delete; + AutofillRequest& operator=(const AutofillRequest&) = delete; + + void CheckAutofillData(base::WaitableEvent* done, + std::string& signon_realm, + GURL& origin, + std::string& username); + void CommitAutofill(std::string user_element, + std::string user_value, + std::string pass_element, + std::string pass_value, + GURL& origin, + std::string title); + std::vector> GetResult(); + void OnLogin(); + + // In order to be called in anonymous namespace, put below six functions in + // public area. It is required by autofill framework to return 'bool' for + // AutofillDataItem and AutofillDataGroup + void ConnectionStatusChanged(autofill_connection_status_e status); + bool AutofillDataItem(autofill_fill_response_item_h item); + bool AutofillDataGroup(autofill_fill_response_group_h group_h); + void AutofillData(autofill_fill_response_h fill_response); + void AuthInfo(autofill_auth_info_h auth_info_h); + void AutofillErrorInfo(autofill_error_info_h error_info); + + private: + enum class State { + // constructed, but some necessary members are not initialized + kBirth, + // is able to handle request + kReady, + // failure in 1st Connect + kMute, + // started fetching forms but not finished + kFetching, + // finished fetching forms + kFetched, + // started saving new forms but not finished + kCommitting, + // finished saving new forms + kCommitted + }; + static const char* ShowState(State value); + // return true if the trasition from current state to param state is known, + // else false + bool ChangeStateTo(State to); + + bool Connect(); + // |item_| and |password_| are reusable among fetch requests + // |view_info_| is not + void PrepareAutofillObjects(); + void RequestAutofillData(); + + State state_; + std::unique_ptr login_request_; + // wait for login form result from autofill service + base::WaitableEvent* fetch_event_; + + autofill_item_h item_ = nullptr; + autofill_item_h password_ = nullptr; + autofill_view_info_h view_info_ = nullptr; + + autofill_h autofill_ = nullptr; +}; + +} // namespace autofill +#endif // AUTOFILL_REQUEST_H diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.cc b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.cc new file mode 100644 index 0000000..81f453f --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.cc @@ -0,0 +1,99 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "browser/autofill/autofill_request_manager.h" + +namespace autofill { + +AutofillRequestManager* AutofillRequestManager::GetInstance() { + return base::Singleton::get(); +} + +AutofillRequestManager::AutofillRequestManager() {} + +AutofillRequestManager::~AutofillRequestManager() { + LOG(INFO) << "[Autofill] " << __FUNCTION__; + autofill_request_.clear(); +} + +void AutofillRequestManager::CreateAutofillRequest(Evas_Object* view) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " view : " << view; + base::AutoLock locker(request_lock_); + autofill_request_[view] = std::make_unique(); +} + +AutofillRequest* AutofillRequestManager::FindRequest(Evas_Object* view) { + base::AutoLock locker(request_lock_); + auto iter = autofill_request_.find(view); + if (iter != autofill_request_.end()) + return iter->second.get(); + + LOG(ERROR) << "[Autofill] " << __FUNCTION__ << " No request : " << view; + return nullptr; +} + +void AutofillRequestManager::CheckAutofillData(void* view, + base::WaitableEvent* done, + std::string signon_realm, + GURL origin, + std::string username) { + auto webview = static_cast(view); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " view : " << webview; + + auto request = FindRequest(webview); + if (request) + request->CheckAutofillData(done, signon_realm, origin, username); + else + done->Signal(); +} + +std::vector> +AutofillRequestManager::GetResult(void* view) { + auto webview = static_cast(view); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " view : " << webview; + auto request = FindRequest(webview); + return request + ? request->GetResult() + : std::vector>(); +} + +void AutofillRequestManager::CommitAutofill(void* view, + std::string user_element, + std::string user_value, + std::string pass_element, + std::string pass_value, + GURL& origin, + std::string title) { + auto webview = static_cast(view); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " view : " << webview; + + auto request = FindRequest(webview); + if (request) { + request->CommitAutofill(user_element, user_value, pass_element, pass_value, + origin, title); + } +} + +void AutofillRequestManager::RemoveRequest(Evas_Object* view) { + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " view : " << view; + base::AutoLock locker(request_lock_); + auto iter = autofill_request_.find(view); + if (iter == autofill_request_.end()) { + LOG(ERROR) << "[Autofill] " << __FUNCTION__ << " No request : " << view; + return; + } + + autofill_request_.erase(iter); +} + +void AutofillRequestManager::OnLogin(void* view) { + auto webview = static_cast(view); + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " view : " << webview; + + auto request = FindRequest(webview); + if (request) + request->OnLogin(); +} + +} // namespace autofill diff --git a/tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.h b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.h new file mode 100644 index 0000000..86cc695 --- /dev/null +++ b/tizen_src/ewk/efl_integration/browser/autofill/autofill_request_manager.h @@ -0,0 +1,62 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef AUTOFILL_REQUEST_MANAGER_H +#define AUTOFILL_REQUEST_MANAGER_H + +#include +#include + +#include "autofill_request.h" +#include "base/memory/ref_counted.h" +#include "base/memory/singleton.h" +#include "base/synchronization/lock.h" +#include "base/synchronization/waitable_event.h" +#include "components/password_manager/core/browser/password_form.h" + +namespace base { +template +struct DefaultSingletonTraits; +} + +namespace autofill { + +class AutofillRequestManager { + public: + static AutofillRequestManager* GetInstance(); + void CreateAutofillRequest(Evas_Object* view); + void CheckAutofillData(void* view, + base::WaitableEvent* done, + std::string signon_realm, + GURL origin, + std::string username); + std::vector> GetResult( + void* view); + void CommitAutofill(void* view, + std::string user_element, + std::string user_value, + std::string pass_element, + std::string pass_value, + GURL& origin, + std::string title); + void RemoveRequest(Evas_Object* view); + void OnLogin(void* view); + + private: + friend struct base::DefaultSingletonTraits; + + AutofillRequestManager(); + ~AutofillRequestManager(); + + AutofillRequestManager(const AutofillRequestManager&) = delete; + AutofillRequestManager& operator=(const AutofillRequestManager&) = delete; + + AutofillRequest* FindRequest(Evas_Object* view); + + base::Lock request_lock_; + std::map> autofill_request_; +}; + +} // namespace autofill +#endif // AUTOFILL_REQUEST_MANAGER_H diff --git a/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.cc b/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.cc index 934d66e..abd565e 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.cc +++ b/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/autofill/personal_data_manager_factory.h" @@ -88,4 +88,4 @@ void PersonalDataManagerFactoryEfl::OnPersonalDataChanged() { } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h b/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h index 6deed3d..5988297 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h +++ b/tizen_src/ewk/efl_integration/browser/autofill/personal_data_manager_factory.h @@ -5,7 +5,7 @@ #ifndef PERSONAL_DATA_MANAGER_FACTORY_H #define PERSONAL_DATA_MANAGER_FACTORY_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "base/compiler_specific.h" #include "base/containers/id_map.h" #include "base/memory/ref_counted.h" @@ -60,5 +60,5 @@ class PersonalDataManagerFactoryEfl : public PersonalDataManagerObserver { }; } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // PERSONAL_DATA_MANAGER_FACTORY_H diff --git a/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.cc b/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.cc index 3a221bf..3892eec 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "autofill_popup_view_efl.h" #include "base/files/file_path.h" @@ -360,4 +360,4 @@ void AutofillPopupViewEfl::savePasswordNotNowCb(void* data, } // namespace autofill -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.h b/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.h index 52255e9..d8d47ca 100644 --- a/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.h +++ b/tizen_src/ewk/efl_integration/browser/autofill_popup_view_efl.h @@ -5,7 +5,7 @@ #ifndef AUTOFILL_POPUP_EFL_H #define AUTOFILL_POPUP_EFL_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include #include "ecore_x_wayland_wrapper.h" @@ -68,6 +68,6 @@ class AutofillPopupViewEfl { } //namespace autofill -#endif //TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // autofill_popup_efl_h diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.cc b/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.cc index 439022b..55781f0 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "password_helper_efl.h" @@ -103,4 +103,4 @@ void RemoveLogins(const scoped_refptr& store) { } // namespace password_helper -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h b/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h index 1018ec1..6ac8142 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_helper_efl.h @@ -5,7 +5,7 @@ #ifndef EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_ #define EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_ -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include @@ -39,5 +39,5 @@ void RemoveLogins(const scoped_refptr& store); } // namespace password_helper -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // EWK_EFL_INTEGRATION_BROWSER_PASSWORD_MANAGER_PASSWORD_HELPER_EFL_H_ diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.cc b/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.cc index a28d1f9..bea0956 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.cc +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.cc @@ -3,7 +3,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/password_manager/password_manager_client_efl.h" @@ -71,6 +71,23 @@ PasswordManagerClientEfl::PasswordManagerClientEfl( ContentPasswordManagerDriverFactory::FromWebContents(web_contents); } +void PasswordManagerClientEfl::BindReceiver( + mojo::PendingAssociatedReceiver + pending_receiver, + content::RenderFrameHost* rfh) { + auto* web_contents = content::WebContents::FromRenderFrameHost(rfh); + if (!web_contents) + return; + + auto* password_manager_client = + PasswordManagerClientEfl::FromWebContents(web_contents); + if (!password_manager_client) + return; + + password_manager_client->password_manager_driver_bindings_.Bind( + rfh, std::move(pending_receiver)); +} + PasswordManagerClientEfl::~PasswordManagerClientEfl() { } @@ -365,4 +382,4 @@ void PasswordManagerClientEfl::CheckSafeBrowsingReputation( WEB_CONTENTS_USER_DATA_KEY_IMPL(PasswordManagerClientEfl); } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h b/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h index c60d1c5..9a202a7 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_manager_client_efl.h @@ -6,7 +6,7 @@ #ifndef PASSWORD_MANAGER_CLIENT_EFL_H #define PASSWORD_MANAGER_CLIENT_EFL_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "base/compiler_specific.h" #include "components/autofill/core/browser/logging/log_manager.h" @@ -21,14 +21,22 @@ #include "content/public/browser/render_frame_host_receiver_set.h" #include "content/public/browser/web_contents_user_data.h" +#if defined(TIZEN_AUTOFILL_FW) +#include "content/browser/web_contents/web_contents_impl.h" +#endif + class PasswordManager; namespace content { class WebContents; +#if defined(TIZEN_AUTOFILL_FW) +class WebContentsImpl; +#endif } // PasswordManagerClientEfl implements the PasswordManagerClient interface. namespace password_manager { + class PasswordManagerClientEfl : public PasswordManagerClient, public content::WebContentsUserData, @@ -37,6 +45,10 @@ class PasswordManagerClientEfl virtual ~PasswordManagerClientEfl(); using CredentialsCallback = base::OnceCallback; + static void BindReceiver(mojo::PendingAssociatedReceiver< + autofill::mojom::PasswordManagerDriver> receiver, + content::RenderFrameHost* rfh); + static void CreateForWebContentsWithAutofillClient( content::WebContents* contents, autofill::AutofillClient* autofill_client); @@ -81,6 +93,15 @@ class PasswordManagerClientEfl uint64_t reused_password_hash, const std::string& domain) override; +#if defined(TIZEN_AUTOFILL_FW) + void* GetWebview() const override { + auto wci = static_cast(web_contents_); + if (!wci) + return nullptr; + return wci->ewk_view(); + } +#endif + ukm::SourceId GetUkmSourceId() override; PasswordManagerMetricsRecorder* GetMetricsRecorder() override; bool IsIsolationForPasswordSitesEnabled() const override; @@ -182,6 +203,6 @@ class PasswordManagerClientEfl }; } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // PASSWORD_MANAGER_CLIENT_EFL_H diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.cc b/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.cc index 4a55a7b..8982456 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.cc +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.cc @@ -3,7 +3,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/password_manager/password_store_factory.h" @@ -77,4 +77,4 @@ void PasswordStoreFactory::Init() { service_ = std::make_unique(ps); } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h b/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h index 58bb14e..e85484c 100644 --- a/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h +++ b/tizen_src/ewk/efl_integration/browser/password_manager/password_store_factory.h @@ -6,7 +6,7 @@ #ifndef PASSWORD_STORE_FACTORY_H #define PASSWORD_STORE_FACTORY_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "base/memory/singleton.h" #include "components/password_manager/core/browser/password_manager_driver.h" @@ -54,6 +54,6 @@ class PasswordStoreFactory { std::unique_ptr service_; }; } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // PASSWORD_STORE_FACTORY_H diff --git a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.cc b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.cc index 554dabf..34e7cfc 100644 --- a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.cc +++ b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.cc @@ -3,7 +3,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/webdata/web_data_service.h" @@ -37,4 +37,4 @@ WebDataService::WebDataService() WebDataService::~WebDataService() { } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h index 34ae1a6..20ca098 100644 --- a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h +++ b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service.h @@ -7,7 +7,7 @@ #ifndef WEB_DATA_SERVICE_H #define WEB_DATA_SERVICE_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include #include @@ -61,6 +61,6 @@ class WebDataService : public WebDataServiceBase { WebDataService& operator=(const WebDataService&) = delete; }; -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // WEB_DATA_SERVICE_H diff --git a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.cc b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.cc index ab37e60..ff20d7de 100644 --- a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.cc +++ b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.cc @@ -3,7 +3,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/webdata/web_data_service_factory.h" @@ -105,4 +105,4 @@ WebDataServiceFactoryEfl* WebDataServiceFactoryEfl::GetInstance() { return base::Singleton::get(); } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h index 9ee9c67..694a243 100644 --- a/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h +++ b/tizen_src/ewk/efl_integration/browser/webdata/web_data_service_factory.h @@ -6,7 +6,7 @@ #ifndef WEB_DATA_SERVICE_FACTORY_H #define WEB_DATA_SERVICE_FACTORY_H -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "base/memory/ref_counted.h" #include "base/memory/singleton.h" @@ -58,7 +58,7 @@ class WebDataServiceFactoryEfl { WebDataServiceFactoryEfl& operator=(const WebDataServiceFactoryEfl&) = delete; }; -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // WEB_DATA_SERVICE_FACTORY_H diff --git a/tizen_src/ewk/efl_integration/browser_context_efl.cc b/tizen_src/ewk/efl_integration/browser_context_efl.cc index 10f6c53..42e40e8 100644 --- a/tizen_src/ewk/efl_integration/browser_context_efl.cc +++ b/tizen_src/ewk/efl_integration/browser_context_efl.cc @@ -77,7 +77,7 @@ BrowserContextEfl::ResourceContextEfl::ResourceContextEfl( BrowserContextEfl::~BrowserContextEfl() { NotifyWillBeDestroyed(); -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) autofill::PersonalDataManagerFactoryEfl::GetInstance() ->PersonalDataManagerRemove(this); autofill::AutocompleteHistoryManagerFactoryEfl::GetInstance() @@ -156,7 +156,7 @@ BrowserContextEfl::BrowserContextEfl(EWebContext* web_context, bool incognito) PrefRegistrySimple* pref_registry = new PrefRegistrySimple(); -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) // autofill preferences pref_registry->RegisterBooleanPref(kAutofillProfileEnabled, true); pref_registry->RegisterBooleanPref(kAutofillWalletImportEnabled, true); @@ -179,7 +179,7 @@ BrowserContextEfl::BrowserContextEfl(EWebContext* web_context, bool incognito) user_prefs::UserPrefs::Set(this, user_pref_service_.get()); -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) autofill::AutocompleteHistoryManagerFactoryEfl::GetInstance() ->AutocompleteHistoryManagerAdd(this); #endif diff --git a/tizen_src/ewk/efl_integration/content_browser_client_efl.cc b/tizen_src/ewk/efl_integration/content_browser_client_efl.cc index a3c723d..320bbee 100644 --- a/tizen_src/ewk/efl_integration/content_browser_client_efl.cc +++ b/tizen_src/ewk/efl_integration/content_browser_client_efl.cc @@ -40,7 +40,7 @@ #include "web_contents_delegate_efl.h" #include "web_contents_view_delegate_ewk.h" -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "components/autofill/core/common/autofill_switches.h" #endif @@ -467,7 +467,7 @@ bool ContentBrowserClientEfl::BindAssociatedReceiverFromFrame( RenderFrameHost* render_frame_host, const std::string& interface_name, mojo::ScopedInterfaceEndpointHandle* handle) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (base::CommandLine::ForCurrentProcess()->HasSwitch( autofill::switches::kDisableAutofill)) { return false; @@ -480,14 +480,6 @@ bool ContentBrowserClientEfl::BindAssociatedReceiverFromFrame( render_frame_host); return true; } - if (interface_name == autofill::mojom::PasswordManagerDriver::Name_) { - password_manager::ContentPasswordManagerDriverFactory:: - BindPasswordManagerDriver( - mojo::PendingAssociatedReceiver< - autofill::mojom::PasswordManagerDriver>(std::move(*handle)), - render_frame_host); - return true; - } #endif return false; } diff --git a/tizen_src/ewk/efl_integration/eweb_context.cc b/tizen_src/ewk/efl_integration/eweb_context.cc index 5940a6f..0296654 100644 --- a/tizen_src/ewk/efl_integration/eweb_context.cc +++ b/tizen_src/ewk/efl_integration/eweb_context.cc @@ -815,7 +815,7 @@ Evas_Object* EWebContext::AddFaviconObject(const char* uri, } void EWebContext::ClearCandidateData() { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE, base::BindOnce(&EWebContext::ClearCandidateData, @@ -835,39 +835,39 @@ void EWebContext::ClearCandidateData() { DLOG(WARNING) << "AutofillWebDataService is NULL"; } #else - DLOG(WARNING) << "TIZEN_AUTOFILL_SUPPORT is not enabled"; + DLOG(WARNING) << "TIZEN_AUTOFILL is not enabled"; #endif } void EWebContext::ClearPasswordData() { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) password_helper::RemoveLogins( password_manager::PasswordStoreFactory::GetProfilePasswordStore()); #else - DLOG(WARNING) << "TIZEN_AUTOFILL_SUPPORT is not enabled"; + DLOG(WARNING) << "TIZEN_AUTOFILL is not enabled"; #endif } void EWebContext::ClearPasswordDataForUrl(const char* url) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) password_helper::RemoveLogin( password_manager::PasswordStoreFactory::GetProfilePasswordStore(), GURL(url)); #else - DLOG(WARNING) << "TIZEN_AUTOFILL_SUPPORT is not enabled"; + DLOG(WARNING) << "TIZEN_AUTOFILL is not enabled"; #endif } void EWebContext::GetPasswordDataList( Ewk_Context_Form_Password_Data_List_Get_Callback callback, void* user_data) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) password_helper::GetLogins( password_manager::PasswordStoreFactory::GetProfilePasswordStore(), base::BindRepeating(&OnGetPasswordDataList, base::Unretained(callback), base::Unretained(user_data))); #else - DLOG(WARNING) << "TIZEN_AUTOFILL_SUPPORT is not enabled"; + DLOG(WARNING) << "TIZEN_AUTOFILL is not enabled"; #endif } diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index 13839fe..42aa735 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -95,6 +95,11 @@ #include "eweb_accessibility_util.h" #endif +#if defined(TIZEN_AUTOFILL_FW) +#include "browser/autofill/autofill_request_manager.h" +#include "components/autofill/core/common/autofill_switches.h" +#endif + using namespace content; using web_contents_utils::WebViewFromWebContents; @@ -448,6 +453,14 @@ EWebView::~EWebView() { eweb_accessibility_.reset(); #endif +#if defined(TIZEN_AUTOFILL_FW) + if (!base::CommandLine::ForCurrentProcess()->HasSwitch( + autofill::switches::kDisableAutofill)) { + autofill::AutofillRequestManager::GetInstance()->RemoveRequest( + evas_object()); + } +#endif + select_picker_.reset(); context_menu_.reset(); mhtml_callback_map_.Clear(); @@ -642,6 +655,11 @@ Eina_Bool EWebView::GoBack() { if (!web_contents_->GetController().CanGoBack()) return EINA_FALSE; +#if defined(TIZEN_AUTOFILL_FW) + if (web_contents_delegate_) + web_contents_delegate_->ResetLastInteractedElements(); +#endif + web_contents_->GetController().GoBack(); return EINA_TRUE; } diff --git a/tizen_src/ewk/efl_integration/eweb_view_callbacks.h b/tizen_src/ewk/efl_integration/eweb_view_callbacks.h index b8e1b1d..3d586e2 100644 --- a/tizen_src/ewk/efl_integration/eweb_view_callbacks.h +++ b/tizen_src/ewk/efl_integration/eweb_view_callbacks.h @@ -35,6 +35,10 @@ #include "private/ewk_policy_decision_private.h" #include "private/ewk_user_media_private.h" +#if BUILDFLAG(IS_TIZEN_TV) +#include "private/ewk_autofill_profile_private.h" +#endif + typedef struct EwkObject Ewk_Auth_Request; typedef struct EwkObject Ewk_Download_Job; typedef struct EwkObject Ewk_File_Chooser_Request; @@ -147,6 +151,8 @@ enum CallbackType { #if BUILDFLAG(IS_TIZEN_TV) HoverOverLink, HoverOutLink, + LoginFormSubmitted, + LoginFields, #endif URIChanged, DidNotAllowScript, @@ -314,7 +320,14 @@ DECLARE_EWK_VIEW_CALLBACK(NewWindowNavigationPolicyDecision, "policy,decision,ne #if BUILDFLAG(IS_TIZEN_TV) DECLARE_EWK_VIEW_CALLBACK(HoverOverLink, "hover,over,link", const char*); DECLARE_EWK_VIEW_CALLBACK(HoverOutLink, "hover,out,link", const char*); +DECLARE_EWK_VIEW_CALLBACK(LoginFormSubmitted, + "login,form,submitted", + _Ewk_Form_Info*); +DECLARE_EWK_VIEW_CALLBACK(LoginFields, + "login,field,identified", + _Ewk_Form_Info*); #endif + DECLARE_EWK_VIEW_CALLBACK(ContentsSizeChanged, "contents,size,changed", void); DECLARE_EWK_VIEW_CALLBACK(MenuBarVisible, "menubar,visible", bool*); DECLARE_EWK_VIEW_CALLBACK(StatusBarVisible, "statusbar,visible", bool*); diff --git a/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.cc b/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.cc index a55861b..abd6ab1 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.cc +++ b/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.cc @@ -49,3 +49,33 @@ void _Ewk_Autofill_Profile::setData(DataType name, } m_data[name] = value; } + +#if BUILDFLAG(IS_TIZEN_TV) +Ewk_Form_Type _Ewk_Form_Info::GetFormType() const { + return EWK_FORM_NONE; +} + +const char* _Ewk_Form_Info::GetFormId() const { + return ""; +} + +const char* _Ewk_Form_Info::GetFormPassword() const { + return ""; +} + +const char* _Ewk_Form_Info::GetFormUsernameElement() const { + return ""; +} + +const char* _Ewk_Form_Info::GetFormPasswordElement() const { + return ""; +} + +const char* _Ewk_Form_Info::GetFormActionUrl() const { + return ""; +} + +const char* _Ewk_Form_Info::GetFormDomain() const { + return ""; +} +#endif diff --git a/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.h b/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.h index 8f8ae8d..5eed1d0 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_autofill_profile_private.h @@ -9,6 +9,9 @@ #include #include "base/strings/utf_string_conversions.h" +#if BUILDFLAG(IS_TIZEN_TV) +#include "public/ewk_autofill_profile_product.h" +#endif enum DataType { PROFILE_ID = 0, @@ -25,6 +28,32 @@ enum DataType { MAX_AUTOFILL }; +#if BUILDFLAG(IS_TIZEN_TV) +struct _Ewk_Form_Info { + _Ewk_Form_Info(Ewk_Form_Type form_type, + std::string name, + std::string password) + : type_(form_type), id_(name), password_(password) {} + ~_Ewk_Form_Info(){}; + + Ewk_Form_Type GetFormType() const; + const char* GetFormId() const; + const char* GetFormPassword() const; + const char* GetFormUsernameElement() const; + const char* GetFormPasswordElement() const; + const char* GetFormActionUrl() const; + const char* GetFormDomain() const; + + Ewk_Form_Type type_; + std::string id_; + std::string password_; + std::string username_element_; + std::string password_element_; + std::string action_url_; + std::string domain_; +}; +#endif + class _Ewk_Autofill_Profile { public: _Ewk_Autofill_Profile(); diff --git a/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.cc b/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.cc index 7f09a38..b13bddb 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.cc +++ b/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.cc @@ -4,7 +4,7 @@ #include "ewk_context_form_autofill_profile_private.h" -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include #include @@ -287,4 +287,4 @@ EwkContextFormAutofillProfileManager::priv_form_autofill_profile_changed_callbac personalDataManagerFactory->SetCallback(callback, user_data); } -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL diff --git a/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.h b/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.h index 82f8002..fc68484 100644 --- a/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.h +++ b/tizen_src/ewk/efl_integration/private/ewk_context_form_autofill_profile_private.h @@ -5,7 +5,7 @@ #ifndef ewk_context_form_autofill_profile_private_h #define ewk_context_form_autofill_profile_private_h -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include #include @@ -99,6 +99,6 @@ class EwkContextFormAutofillProfileManager void* user_data); }; -#endif // TIZEN_AUTOFILL_SUPPORT +#endif // TIZEN_AUTOFILL #endif // ewk_context_form_autofill_profile_private_h diff --git a/tizen_src/ewk/efl_integration/public/ewk_autofill_profile.cc b/tizen_src/ewk/efl_integration/public/ewk_autofill_profile.cc index 2a223f1..d192f24 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_autofill_profile.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_autofill_profile.cc @@ -71,35 +71,35 @@ Ewk_Form_Type ewk_autofill_profile_form_type_get(Ewk_Form_Info* info) const char* ewk_autofill_profile_form_user_name_get(Ewk_Form_Info* info) { LOG_EWK_API_MOCKUP("This API is not supported"); - return NULL; + return nullptr; } const char* ewk_autofill_profile_form_password_get(Ewk_Form_Info* info) { LOG_EWK_API_MOCKUP("This API is not supported"); - return NULL; + return nullptr; } const char* ewk_autofill_profile_form_username_element_get(Ewk_Form_Info* info) { LOG_EWK_API_MOCKUP("This API is not supported"); - return NULL; + return nullptr; } const char* ewk_autofill_profile_form_password_element_get(Ewk_Form_Info* info) { LOG_EWK_API_MOCKUP("This API is not supported"); - return NULL; + return nullptr; } const char* ewk_autofill_profile_form_action_url_get(Ewk_Form_Info* info) { LOG_EWK_API_MOCKUP("This API is not supported"); - return NULL; + return nullptr; } const char* ewk_autofill_profile_form_domain_get(Ewk_Form_Info* info) { LOG_EWK_API_MOCKUP("This API is not supported"); - return NULL; + return nullptr; } diff --git a/tizen_src/ewk/efl_integration/public/ewk_context.cc b/tizen_src/ewk/efl_integration/public/ewk_context.cc index 2d20da3..28b632e 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_context.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_context.cc @@ -463,7 +463,7 @@ void ewk_context_form_autofill_profile_changed_callback_set( Ewk_Context_Form_Autofill_Profile_Changed_Callback callback, void* user_data) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) EwkContextFormAutofillProfileManager::priv_form_autofill_profile_changed_callback_set( callback, user_data); #endif @@ -471,7 +471,7 @@ void ewk_context_form_autofill_profile_changed_callback_set( Eina_List* ewk_context_form_autofill_profile_get_all(Ewk_Context* context) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (NULL == context) { return NULL; } @@ -483,7 +483,7 @@ Eina_List* ewk_context_form_autofill_profile_get_all(Ewk_Context* context) Ewk_Autofill_Profile* ewk_context_form_autofill_profile_get(Ewk_Context* context, unsigned id) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (NULL == context) { return NULL; } @@ -495,7 +495,7 @@ Ewk_Autofill_Profile* ewk_context_form_autofill_profile_get(Ewk_Context* context Eina_Bool ewk_context_form_autofill_profile_set(Ewk_Context* context, unsigned id, Ewk_Autofill_Profile* profile) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (NULL == context || NULL == profile) { return EINA_FALSE; } @@ -508,7 +508,7 @@ Eina_Bool ewk_context_form_autofill_profile_set(Ewk_Context* context, unsigned i Eina_Bool ewk_context_form_autofill_profile_add(Ewk_Context* context, Ewk_Autofill_Profile* profile) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (NULL == context || NULL == profile) { return EINA_FALSE; } @@ -521,7 +521,7 @@ Eina_Bool ewk_context_form_autofill_profile_add(Ewk_Context* context, Ewk_Autofi Eina_Bool ewk_context_form_autofill_profile_remove(Ewk_Context* context, unsigned id) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (NULL == context) { return EINA_FALSE; } diff --git a/tizen_src/ewk/efl_integration/public/ewk_view.cc b/tizen_src/ewk/efl_integration/public/ewk_view.cc index c26c385..29f5697 100644 --- a/tizen_src/ewk/efl_integration/public/ewk_view.cc +++ b/tizen_src/ewk/efl_integration/public/ewk_view.cc @@ -661,7 +661,6 @@ Eina_Bool ewk_view_script_execute(Evas_Object* ewkView, const char* script, Ewk_ return false; } - Eina_Bool ewk_view_plain_text_get(Evas_Object* view, Ewk_View_Plain_Text_Get_Callback callback, void* user_data) { EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE); @@ -1702,7 +1701,7 @@ void ewk_view_feed_mouse_wheel(Evas_Object* view, void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* password) { - LOG_EWK_API_MOCKUP(); + LOG_EWK_API_MOCKUP("This API is not supported."); } void ewk_view_request_manifest(Evas_Object* o, diff --git a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc index fd006f5..56d5447 100644 --- a/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc +++ b/tizen_src/ewk/efl_integration/renderer/content_renderer_client_efl.cc @@ -43,7 +43,7 @@ #include "third_party/blink/public/web/web_view.h" #include "url/gurl.h" -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "components/autofill/content/renderer/autofill_agent.h" #include "components/autofill/content/renderer/autofill_assistant_agent.h" #include "components/autofill/content/renderer/password_autofill_agent.h" @@ -62,7 +62,7 @@ #include "common/application_type.h" #endif -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) using autofill::AutofillAgent; using autofill::AutofillAssistantAgent; using autofill::PasswordAutofillAgent; @@ -128,7 +128,7 @@ void ContentRendererClientEfl::RenderFrameCreated(content::RenderFrame* render_f // Deletes itself when render_frame is destroyed. new content::GinNativeBridgeDispatcher(render_frame); -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (!base::CommandLine::ForCurrentProcess()->HasSwitch( autofill::switches::kDisableAutofill)) { blink::AssociatedInterfaceRegistry* registry = diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc index f31141f..cd2e77a 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.cc @@ -54,7 +54,11 @@ #include "third_party/blink/public/mojom/mediastream/media_stream.mojom.h" #endif -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL_FW) +#include "browser/autofill/autofill_request_manager.h" +#endif + +#if defined(TIZEN_AUTOFILL) #include "base/command_line.h" #include "browser/autofill/autofill_client_efl.h" #include "browser/password_manager/password_manager_client_efl.h" @@ -121,7 +125,7 @@ WebContentsDelegateEfl::WebContentsDelegateEfl(EWebView* view) : web_view_(view), web_contents_(view->web_contents()), contents_observer_(std::make_unique(view, this)) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (!base::CommandLine::ForCurrentProcess()->HasSwitch( autofill::switches::kDisableAutofill)) { AutofillClientEfl::CreateForWebContents(&web_contents_); @@ -135,6 +139,11 @@ WebContentsDelegateEfl::WebContentsDelegateEfl(EWebView* view) base::BindRepeating(&autofill::BrowserDriverInitHook, autofill_client, EWebView::GetPlatformLocale())); } +#if defined(TIZEN_AUTOFILL_FW) + LOG(INFO) << "[Autofill] " << __FUNCTION__ << " Create AutofillRequest"; + autofill::AutofillRequestManager::GetInstance()->CreateAutofillRequest( + view->evas_object()); +#endif #endif } @@ -497,7 +506,7 @@ void WebContentsDelegateEfl::SetContentSecurityPolicy( contents_observer_->SetContentSecurityPolicy(policy, header_type); } -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) void WebContentsDelegateEfl::UpdateAutofillIfRequired() { if (AutofillClientEfl* autofill_client = AutofillClientEfl::FromWebContents(&web_contents_)) { @@ -508,7 +517,7 @@ void WebContentsDelegateEfl::UpdateAutofillIfRequired() { void WebContentsDelegateEfl::OnDidChangeFocusedNodeBounds( const gfx::RectF& focused_node_bounds) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (AutofillClientEfl* autofill_client = AutofillClientEfl::FromWebContents(&web_contents_)) { autofill_client->DidChangeFocusedNodeBounds(focused_node_bounds); @@ -516,6 +525,15 @@ void WebContentsDelegateEfl::OnDidChangeFocusedNodeBounds( #endif } +#if defined(TIZEN_AUTOFILL_FW) +void WebContentsDelegateEfl::ResetLastInteractedElements() { + if (AutofillClientEfl* autofill_client = + AutofillClientEfl::FromWebContents(&web_contents_)) { + autofill_client->ResetLastInteractedElements(); + } +} +#endif + void WebContentsDelegateEfl::FindReply(WebContents* web_contents, int request_id, int number_of_matches, @@ -557,7 +575,7 @@ JavaScriptDialogManager* WebContentsDelegateEfl::GetJavaScriptDialogManager( } void WebContentsDelegateEfl::OnUpdateSettings(const Ewk_Settings* settings) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) PasswordManagerClientEfl* client = PasswordManagerClientEfl::FromWebContents(&web_contents_); if (client) { diff --git a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h index 8a9a4a7..7245364 100644 --- a/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h +++ b/tizen_src/ewk/efl_integration/web_contents_delegate_efl.h @@ -140,9 +140,14 @@ class WebContentsDelegateEfl : public WebContentsDelegate { void UpdateTargetURL(WebContents* source, const GURL& url) override; #endif -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) void UpdateAutofillIfRequired(); #endif + +#if defined(TIZEN_AUTOFILL_FW) + void ResetLastInteractedElements(); +#endif + private: void OnDidGetManifest(Ewk_View_Request_Manifest_Callback callback, void* user_data, diff --git a/tizen_src/ewk/efl_integration/web_contents_observer_efl.cc b/tizen_src/ewk/efl_integration/web_contents_observer_efl.cc index 05eacbc..415d1c8 100644 --- a/tizen_src/ewk/efl_integration/web_contents_observer_efl.cc +++ b/tizen_src/ewk/efl_integration/web_contents_observer_efl.cc @@ -36,7 +36,7 @@ #include "private/ewk_context_private.h" #endif -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) #include "browser/autofill/autofill_client_efl.h" using autofill::AutofillClientEfl; #endif @@ -384,7 +384,7 @@ void WebContentsObserverEfl::OnDidChangeContentsSize(int width, int height) { void WebContentsObserverEfl::OnDidChangeFocusedNodeBounds( const gfx::RectF& focused_node_bounds) { -#if defined(TIZEN_AUTOFILL_SUPPORT) +#if defined(TIZEN_AUTOFILL) if (AutofillClientEfl* autofill_client = AutofillClientEfl::FromWebContents(&web_contents_)) { autofill_client->DidChangeFocusedNodeBounds(focused_node_bounds); -- 2.7.4 From efdd386d9ef87ede96ffda00f408e51589e04a61 Mon Sep 17 00:00:00 2001 From: Sun-woo Nam Date: Wed, 1 Mar 2023 20:51:10 -0800 Subject: [PATCH 05/16] [M108 Migration][MM][CAPI] Support Video Hole in the onscreen rendering mode. Ecore_Wl2_Window is used as the main window handle in the onscreen rendering mode. Previously, |player_set_display| was used to use video hole in CAPI MMPlayer. However, |player_set_display| could only receive evas objects, including elm window, as a parameter. Threrefore, this patch uses |player_set_display_webapp| api to hand over the wayland surface id for the TV profile. In case of the public profile, use |player_set_ecore_wl_display| instead of |player_set_display_webapp|. Reference: https://review.tizen.org/gerrit/#/c/289148/ Change-Id: I0eb011c20a6584e581b151fec35468cd58073cfa Signed-off-by: Sun-woo Nam --- .../media/base/tizen/media_player_bridge_capi.cc | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc index 14136ef..f14ae60 100644 --- a/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc +++ b/tizen_src/chromium_impl/media/base/tizen/media_player_bridge_capi.cc @@ -16,8 +16,11 @@ #include "ui/gfx/geometry/size.h" #if defined(TIZEN_VIDEO_HOLE) +#include #include "tizen_src/chromium_impl/media/base/tizen/video_plane_controller_capi.h" -#include "tizen_src/chromium_impl/media/filters/esplusplayer_util.h" +#if BUILDFLAG(IS_TIZEN_TV) +#include +#endif #endif namespace { @@ -170,8 +173,25 @@ void MediaPlayerBridgeCapi::Prepare(CompleteCB cb) { #if defined(TIZEN_VIDEO_HOLE) if (is_video_hole_) { - ret = player_set_display(player_, PLAYER_DISPLAY_TYPE_OVERLAY, - video_plane_controller_->GetVideoPlaneHandle()); + if (video_plane_controller_->rendering_mode() == + VideoPlaneController::RenderingMode::OFFSCREEN) { + ret = player_set_display(player_, PLAYER_DISPLAY_TYPE_OVERLAY, + video_plane_controller_->GetVideoPlaneHandle()); + } else { + Ecore_Wl2_Window* window_handle = static_cast( + video_plane_controller_->GetVideoPlaneHandle()); + int wl_w, wl_h, wl_x, wl_y; +#if BUILDFLAG(IS_TIZEN_TV) + ecore_wl2_window_geometry_get(window_handle, &wl_x, &wl_y, &wl_w, &wl_h); + unsigned int surface_id = ecore_wl2_window_surface_id_get(window_handle); + ret = player_set_display_webapp(player_, PLAYER_DISPLAY_TYPE_OVERLAY, + surface_id, wl_h, wl_w, wl_x, wl_y); +#else + ret = player_set_ecore_wl_display(player_, PLAYER_DISPLAY_TYPE_OVERLAY, + window_handle, wl_x, wl_y, wl_w, wl_h); +#endif + } + if (ret != PLAYER_ERROR_NONE) { OnHandlePlayerError(ret, FROM_HERE); RunCompleteCB(false, FROM_HERE); -- 2.7.4 From 08f1180d075c3e34b38cb9d7af5231a240d1d1d5 Mon Sep 17 00:00:00 2001 From: v-saha Date: Fri, 3 Mar 2023 12:31:00 +0530 Subject: [PATCH 06/16] [M108 Migration] Initialize DeviceDisplayInfoEfl in renderer. Display info should be updated only when webview is created by browser. Reference: https://review.tizen.org/gerrit/279778 Change-Id: I421e59068125018e5c2d51b60fc8af420a657381 Signed-off-by: v-saha --- content/renderer/agent_scheduling_group.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/content/renderer/agent_scheduling_group.cc b/content/renderer/agent_scheduling_group.cc index 3524610..43fe5f1 100644 --- a/content/renderer/agent_scheduling_group.cc +++ b/content/renderer/agent_scheduling_group.cc @@ -35,6 +35,10 @@ #include "third_party/blink/public/web/web_frame_widget.h" #endif +#if BUILDFLAG(IS_EFL) +#include "ui/display/device_display_info_efl.h" +#endif + namespace content { using ::IPC::ChannelMojo; @@ -276,6 +280,15 @@ blink::WebView* AgentSchedulingGroup::CreateWebView( bool was_created_by_renderer) { DCHECK(RenderThread::IsMainThread()); +#if BUILDFLAG(IS_EFL) + if (!was_created_by_renderer) { + // Initialize device display info from browser. + display::DeviceDisplayInfoEfl display_info; + display_info.Update(params->display_width, params->display_height, + params->dip_scale, params->rotation_degrees); + } +#endif + blink::WebFrame* opener_frame = nullptr; if (params->opener_frame_token) opener_frame = -- 2.7.4 From e6daf4d61472db2dd1737799b53f03823b5de42f Mon Sep 17 00:00:00 2001 From: Suhaspoornachandra Date: Fri, 3 Mar 2023 09:22:37 +0530 Subject: [PATCH 07/16] [M108 Migration][MM] Fix crash when the browser is terminated when playing video. 1. MediaPlayerESPlusPlayer should be released before destroyed. 2. WebContents is sometimes destroyed before TizenRendererImpl is destroyed. It causes TizenRendererImpl accesses dangling pointer. 3. buffering_callback_ in BufferObserverImpl should be null-checked. Reference: https://review.tizen.org/gerrit/276393/ Change-Id: I772c80ce9a0f96c5cdc6db6c31aff3465a54eb88 Signed-off-by: Suhaspoornachandra --- tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc | 4 ++++ tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h | 2 +- .../chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc | 3 ++- tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc index f45686c..7999ed4 100644 --- a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.cc @@ -473,6 +473,10 @@ void TizenRendererImpl::OnEnabledAudioTracksChanged( NOTIMPLEMENTED(); } +void TizenRendererImpl::OnWebContentsDestroyed() { + web_contents_observer_ = nullptr; +} + void TizenRendererImpl::OnRendererEnded() { playback_rate_ = 0.0; client_->OnEnded(); diff --git a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h index 3e03aae..d526c43 100644 --- a/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h +++ b/tizen_src/chromium_impl/content/browser/media/tizen_renderer_impl.h @@ -81,7 +81,7 @@ class CONTENT_EXPORT TizenRendererImpl void InitiateScopedSurfaceRequest( InitiateScopedSurfaceRequestCallback callback) override; void OnUpdateAudioMutingState(bool muted) {} - void OnWebContentsDestroyed() {} + void OnWebContentsDestroyed(); // Should be removed. void Seek(base::TimeDelta time); diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc index added68..b6852a5 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer_impl.cc @@ -151,7 +151,8 @@ void BufferObserverImpl::CallbackIfNeed(DemuxerStream::Type type, void BufferObserverImpl::TriggerStatusChangeCallback( DemuxerStream::Type type, BufferStatus status) const { - buffering_callback_.Run(type, status); + if (!buffering_callback_.is_null()) + buffering_callback_.Run(type, status); } BufferStatus BufferObserverImpl::GetBufferStatusFromSize(int buffered_percent) { diff --git a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc index a1b03fd..1f94e87 100644 --- a/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc +++ b/tizen_src/chromium_impl/media/filters/media_player_esplusplayer.cc @@ -133,6 +133,9 @@ MediaPlayerESPlusPlayer::~MediaPlayerESPlusPlayer() { MediaPlayerRegistry::GetInstance()->UnregisterMediaPlayer(player_id_); + // Player should be released before destroyed. + Release(); + int error = esplusplayer_destroy(esplayer_); if (error != ESPLUSPLAYER_ERROR_TYPE_NONE) LOG(ERROR) << "esplusplayer_destroy failed, error #" -- 2.7.4 From 5de9a6d54464da39cc57ae4f46769f7d2a4d50c7 Mon Sep 17 00:00:00 2001 From: "qiang.ji" Date: Thu, 2 Mar 2023 17:59:47 +0800 Subject: [PATCH 08/16] [M108 Migration] [!fixup] Set EflWindow bounds while received parent view resize event 1. We have two ways to set Efl window bounds/ Gpu thread output surface size. One is InitCompositor, the other is OnParentViewResize in RenderWidgetHostViewAuraHelperEfl. 2. In current state, EwebView resize event is coming before RenderWidgetHostViewAuraHelperEfl creation, so we cannot call OnParentViewResize to set correct bounds. This will cause main thread 's output surface size dismatch with gpu thread. Solution: Manually to call SetBoundsInPixels to set bounds even RenderWidgetHostViewAuraHelperEfl is not created yet refs: https://review.tizen.org/gerrit/#/c/282220/ Change-Id: I8e75694c9864a65add80d58791c8d92eb4c73233 Signed-off-by: qiang.ji --- tizen_src/ewk/efl_integration/eweb_view.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tizen_src/ewk/efl_integration/eweb_view.cc b/tizen_src/ewk/efl_integration/eweb_view.cc index 42aa735..c4255ef 100644 --- a/tizen_src/ewk/efl_integration/eweb_view.cc +++ b/tizen_src/ewk/efl_integration/eweb_view.cc @@ -2776,6 +2776,15 @@ bool EWebView::HandleResize(int width, int height) { ScrollFocusedNodeIntoView(); } +#if defined(USE_AURA) && BUILDFLAG(IS_TIZEN_TV) + if (host_) { + int x, y; + evas_object_geometry_get(native_view_, &x, &y, nullptr, nullptr); + gfx::Rect bounds(x, y, width, height); + host_->SetBoundsInPixels(bounds); + } +#endif + return true; } -- 2.7.4 From eb98534f5e25c4d91237ad71fc48c013c740a33f Mon Sep 17 00:00:00 2001 From: DongHyun Song Date: Fri, 3 Mar 2023 13:27:03 +0900 Subject: [PATCH 09/16] [M108 Migration][WRTjs] Introduce VconfHandle Adds source code of VconfHandle and removes bring-up tag. Change-Id: I30a8ae83ac9e423d1a3778dca6b0aac497fd6880 Signed-off-by: DongHyun Song --- .../common/zygote/zygote_communication_linux.cc | 5 ++ content/common/zygote/zygote_communication_linux.h | 4 + tizen_src/chromium_impl/tizen/BUILD.gn | 3 + tizen_src/chromium_impl/tizen/vconf_handle.cc | 89 ++++++++++++++++++++++ tizen_src/chromium_impl/tizen/vconf_handle.h | 29 +++++++ wrt/src/app/tv/wrt_main_delegate_tv.cc | 7 +- wrt/src/browser/api/tv/wrt_api_tv_extension.cc | 12 +-- wrt/src/browser/api/wrt_api_mde_extension.cc | 14 ---- wrt/src/browser/native_app_control.cc | 4 - wrt/src/browser/tv/encrypted_file_handler.cc | 6 -- .../browser/tv/native_web_runtime_delegate_tv.cc | 6 +- wrt/src/browser/tv/tv_window_manager.cc | 6 -- wrt/src/browser/tv/widget_state.cc | 6 -- wrt/src/browser/tv/wrt_native_window_tv.cc | 14 ---- 14 files changed, 137 insertions(+), 68 deletions(-) create mode 100644 tizen_src/chromium_impl/tizen/vconf_handle.cc create mode 100644 tizen_src/chromium_impl/tizen/vconf_handle.h diff --git a/content/common/zygote/zygote_communication_linux.cc b/content/common/zygote/zygote_communication_linux.cc index 06a5ce0..d590520 100644 --- a/content/common/zygote/zygote_communication_linux.cc +++ b/content/common/zygote/zygote_communication_linux.cc @@ -357,4 +357,9 @@ void ZygoteCommunication::DropProcessPrivileges(const std::string& app_id) { } #endif +#if defined(OS_TIZEN_TV_PRODUCT) +pid_t ZygoteCommunication::GetZygotePid() { + return pid_; +} +#endif } // namespace content diff --git a/content/common/zygote/zygote_communication_linux.h b/content/common/zygote/zygote_communication_linux.h index 8eef1ae..eafc893 100644 --- a/content/common/zygote/zygote_communication_linux.h +++ b/content/common/zygote/zygote_communication_linux.h @@ -78,6 +78,10 @@ class CONTENT_EXPORT ZygoteCommunication { void DropProcessPrivileges(const std::string& app_id); #endif +#if defined(OS_TIZEN_TV_PRODUCT) + pid_t GetZygotePid(); +#endif + private: // Should be called every time a Zygote child is born. void ZygoteChildBorn(pid_t process); diff --git a/tizen_src/chromium_impl/tizen/BUILD.gn b/tizen_src/chromium_impl/tizen/BUILD.gn index aadfb32..efcb5c1 100644 --- a/tizen_src/chromium_impl/tizen/BUILD.gn +++ b/tizen_src/chromium_impl/tizen/BUILD.gn @@ -10,7 +10,10 @@ static_library("system-info") { public_configs = [ "//tizen_src/build:capi-system-info-public" ] sources = [ + "vconf_handle.cc", + "vconf_handle.h", "system_info.h", "system_info.cc", ] + deps = [ "//base" ] } diff --git a/tizen_src/chromium_impl/tizen/vconf_handle.cc b/tizen_src/chromium_impl/tizen/vconf_handle.cc new file mode 100644 index 0000000..3de3ae7 --- /dev/null +++ b/tizen_src/chromium_impl/tizen/vconf_handle.cc @@ -0,0 +1,89 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "vconf_handle.h" + +#include + +#include "base/logging.h" + +#if defined(OS_TIZEN_TV_PRODUCT) +#include +#endif + +VconfHandle::VconfHandle(const std::string vconf_key) { + vconf_key_ = vconf_key; +} + +std::string VconfHandle::Str() { + std::unique_ptr + vconf_value {vconf_get_str(vconf_key_.c_str()), std::free}; + if (!vconf_value.get()) { + return std::string(); + } else { + return std::string(vconf_value.get()); + } +} + +int VconfHandle::Int() { + int vconf_value = 0; + if (vconf_get_int(vconf_key_.c_str(), &vconf_value) < 0) + return -1; + return vconf_value; +} + +absl::optional VconfHandle::Bool() { + int vconf_value = -1; + if (vconf_get_bool(vconf_key_.c_str(), &vconf_value) == -1) + return absl::nullopt; + return (vconf_value == 1); +} + +void VconfHandle::Set(const char* value, const bool is_rtc) { + if (is_rtc) { +#if defined(OS_TIZEN_TV_PRODUCT) + vconf_set_str_rtc(vconf_key_.c_str(), value); +#else + LOG(ERROR) << "RunTimeCreated vconf is not supported"; +#endif + } else { + vconf_set_str(vconf_key_.c_str(), value); + } +} + +void VconfHandle::Set(const std::string value, const bool is_rtc) { + if (is_rtc) { +#if defined(OS_TIZEN_TV_PRODUCT) + vconf_set_str_rtc(vconf_key_.c_str(), value.c_str()); +#else + LOG(ERROR) << "RunTimeCreated vconf is not supported"; +#endif + } else { + vconf_set_str(vconf_key_.c_str(), value.c_str()); + } +} + +void VconfHandle::Set(const int value, const bool is_rtc) { + if (is_rtc) { +#if defined(OS_TIZEN_TV_PRODUCT) + vconf_set_int_rtc(vconf_key_.c_str(), value); +#else + LOG(ERROR) << "RunTimeCreated vconf is not supported"; +#endif + } else { + vconf_set_int(vconf_key_.c_str(), value); + } +} + +void VconfHandle::Set(const bool value, const bool is_rtc) { + if (is_rtc) { +#if defined(OS_TIZEN_TV_PRODUCT) + vconf_set_bool_rtc(vconf_key_.c_str(), value); +#else + LOG(ERROR) << "RunTimeCreated vconf is not supported"; +#endif + } else { + vconf_set_bool(vconf_key_.c_str(), value); + } +} diff --git a/tizen_src/chromium_impl/tizen/vconf_handle.h b/tizen_src/chromium_impl/tizen/vconf_handle.h new file mode 100644 index 0000000..dcb670d --- /dev/null +++ b/tizen_src/chromium_impl/tizen/vconf_handle.h @@ -0,0 +1,29 @@ +// Copyright 2019 Samsung Electronics. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMMON_VCONF_HANDLE_H_ +#define COMMON_VCONF_HANDLE_H_ + +#include +#include + +#include "third_party/abseil-cpp/absl/types/optional.h" + +class VconfHandle { + public: + VconfHandle(const std::string vconf_key); + + std::string Str(); + int Int(); + absl::optional Bool(); + void Set(const char* value, const bool is_rtc = false); + void Set(const std::string value, const bool is_rtc = false); + void Set(const int value, const bool is_rtc = false); + void Set(const bool value, const bool is_rtc = false); + + private: + std::string vconf_key_; +}; + +#endif // COMMON_VCONF_HANDLE_H_ diff --git a/wrt/src/app/tv/wrt_main_delegate_tv.cc b/wrt/src/app/tv/wrt_main_delegate_tv.cc index aaba6c0..afaa7f7 100644 --- a/wrt/src/app/tv/wrt_main_delegate_tv.cc +++ b/wrt/src/app/tv/wrt_main_delegate_tv.cc @@ -7,7 +7,6 @@ #include #include -#include #include #include #include @@ -31,6 +30,10 @@ #include "wrt/xwalk_extensions/browser/xwalk_extension_manager.h" #include "tizen_src/chromium_impl/ui/gl/gl_shared_context_efl.h" +#if TIZEN_VERSION_AT_LEAST(7, 0, 0) +#include +#endif + #ifndef LIB_PATH #error LIB_PATH is not set. #endif @@ -152,7 +155,7 @@ bool WRTMainDelegateTV::CheckPlatformReady(int argc, char** argv) { // static void WRTMainDelegateTV::GroupZygoteProcess(bool is_oom) { -#if defined(ENABLE_PROCESS_GROUP) +#if TIZEN_VERSION_AT_LEAST(7, 0, 0) // Group zygote process with browser process so that OOM score // can be synchronized. auto oom_score_adj_path = base::FilePath("/proc/self/oom_score_adj"); diff --git a/wrt/src/browser/api/tv/wrt_api_tv_extension.cc b/wrt/src/browser/api/tv/wrt_api_tv_extension.cc index dd37c3f..6951437 100644 --- a/wrt/src/browser/api/tv/wrt_api_tv_extension.cc +++ b/wrt/src/browser/api/tv/wrt_api_tv_extension.cc @@ -16,8 +16,8 @@ #include "content/renderer/render_process_impl.h" #include "electron/shell/common/gin_converters/content_converter.h" #include "gin/object_template_builder.h" -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" +#if !defined(WRT_JS_BRINGUP) #include "tizen_src/ewk/efl_integration/devtools_port_manager.h" #endif #include "v8/include/v8.h" @@ -298,9 +298,7 @@ void TVExtension::SetCurrentApplication(const std::string& app_id) const { std::string TVExtension::QueryProductValue(const std::string& query) const { if (query == "getDuid") { -#if !defined(WRT_JS_BRINGUP) return VconfHandle("db/comss/duid").Str(); -#endif } else if (query == "getFirmware") { return GetSystemInfoString(SYSTEM_INFO_KEY_SW_VERSION); } else if (query == "getLocalSet") { @@ -308,15 +306,11 @@ std::string TVExtension::QueryProductValue(const std::string& query) const { } else if (query == "getModel") { return GetSystemInfoString(SYSTEM_INFO_KEY_MODEL); } else if (query == "getModelCode") { -#if !defined(WRT_JS_BRINGUP) return VconfHandle("db/comss/modelid").Str(); -#endif } else if (query == "getRealModel") { return GetSystemInfoString(SYSTEM_INFO_KEY_PRODUCT_CODE_BOM); } else if (query == "getSmartTVServerVersion") { -#if !defined(WRT_JS_BRINGUP) return VconfHandle("db/comss/infolinkversion").Str(); -#endif } else if (query == "getSmartTVServerType") { int server_type = -1; system_info_get_value_int(SYSTEM_INFO_KEY_INFO_LINK_SERVER_TYPE, @@ -379,9 +373,7 @@ void TVExtension::TakeScreenshot( } void TVExtension::NotifyInstall(const std::string& install_info) const { -#if !defined(WRT_JS_BRINGUP) VconfHandle(kVconfNotifyInstallKey).Set(install_info); -#endif } std::string TVExtension::GetMetadata(const std::string& key) const { @@ -404,9 +396,7 @@ std::string TVExtension::GetPreviewData(const std::string& packageId) const { } std::string TVExtension::GetForegroundApp() const { -#if !defined(WRT_JS_BRINGUP) return VconfHandle(kVconfCurrentAppId).Str(); -#endif } std::string TVExtension::GetSSOGuid() const { diff --git a/wrt/src/browser/api/wrt_api_mde_extension.cc b/wrt/src/browser/api/wrt_api_mde_extension.cc index e9e770f..4b12d12 100755 --- a/wrt/src/browser/api/wrt_api_mde_extension.cc +++ b/wrt/src/browser/api/wrt_api_mde_extension.cc @@ -4,9 +4,7 @@ #include "base/logging.h" #include "gin/object_template_builder.h" -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" -#endif #include "v8/include/v8.h" #if defined(OS_TIZEN_TV_PRODUCT) @@ -130,27 +128,15 @@ void MDEExtension::SelectRemoteInput() { } std::string MDEExtension::GetCurrentLoginId() const { -#if defined(WRT_JS_BRINGUP) - return std::string(); -#else return VconfHandle(kVconfCurrentLoginId).Str(); -#endif } std::string MDEExtension::GetDeviceName() const { -#if defined(WRT_JS_BRINGUP) - return std::string(); -#else return VconfHandle(kVconfDeviceName).Str(); -#endif } std::string MDEExtension::GetDeviceUUID() const { -#if defined(WRT_JS_BRINGUP) - return std::string(); -#else return VconfHandle(kVconfDeviceUUID).Str(); -#endif } #endif diff --git a/wrt/src/browser/native_app_control.cc b/wrt/src/browser/native_app_control.cc index 810d768..8b47c7c 100755 --- a/wrt/src/browser/native_app_control.cc +++ b/wrt/src/browser/native_app_control.cc @@ -32,9 +32,7 @@ #include "wrt/src/base/string_utils.h" #if defined(OS_TIZEN_TV_PRODUCT) -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" -#endif #include "wrt/src/common/application_data.h" #endif @@ -229,9 +227,7 @@ bool NativeAppControl::SendLaunchRequest() { auto& app_data = ApplicationData::GetInstance(); std::string vconfValue = "AppID:" + app_data.app_id() + ", URL is blocked."; LOG(ERROR) << "key: rtc/memory/WebApp/LaunchFail value: " << vconfValue; -#if !defined(WRT_JS_BRINGUP) VconfHandle("rtc/memory/WebApp/LaunchFail").Set(vconfValue, true); -#endif return true; #endif return (app_control_send_launch_request(app_control_, nullptr, nullptr) == diff --git a/wrt/src/browser/tv/encrypted_file_handler.cc b/wrt/src/browser/tv/encrypted_file_handler.cc index 5a54469..b5f5f4e 100644 --- a/wrt/src/browser/tv/encrypted_file_handler.cc +++ b/wrt/src/browser/tv/encrypted_file_handler.cc @@ -20,9 +20,7 @@ #include "base/files/file_util.h" #include "base/logging.h" -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" -#endif #include "wrt/src/base/file_utils.h" #include "wrt/src/common/application_data.h" #include "wrt/src/common/constants.h" @@ -92,9 +90,7 @@ bool EncryptedFileHandler::LoadLicense() { std::string vconfValue = "AppID:" + app_id_ + ", appdrm loadlicense is faild"; LOG(ERROR) << "vconf : " << kLaunchFail << " value : " << vconfValue; -#if !defined(WRT_JS_BRINGUP) VconfHandle(kLaunchFail).Set(vconfValue, true); -#endif return false; } LOG(INFO) << "appdrm_load_license() end"; @@ -158,9 +154,7 @@ EncryptedFileHandler::Decrypt(const base::FilePath& path) const { std::string vconfValue = "AppID: " + app_id_ + ", error no: " + std::to_string(ret) + ", decrypt is faild"; LOG(ERROR) << "vconf : " << kLaunchFail << " value : " << vconfValue; -#if !defined(WRT_JS_BRINGUP) VconfHandle(kLaunchFail).Set(vconfValue, true); -#endif } return DataBuffer(); } else if (length <= 0) { diff --git a/wrt/src/browser/tv/native_web_runtime_delegate_tv.cc b/wrt/src/browser/tv/native_web_runtime_delegate_tv.cc index d0b709d..36dae7a 100644 --- a/wrt/src/browser/tv/native_web_runtime_delegate_tv.cc +++ b/wrt/src/browser/tv/native_web_runtime_delegate_tv.cc @@ -42,8 +42,8 @@ #include "tizen_src/chromium_impl/content/common/paths_efl.h" #if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/content/public/browser/certificates_utils.h" -#include "tizen_src/chromium_impl/tizen/vconf_handle.h" #endif +#include "tizen_src/chromium_impl/tizen/vconf_handle.h" #include "tizen_src/ewk/efl_integration/common/application_type.h" #if !defined(WRT_JS_BRINGUP) #include "tizen_src/ewk/efl_integration/ewk_privilege_checker.h" @@ -182,7 +182,6 @@ int ChangeAmbientModeCallback(device_power_state_info* info, void* user_data) { } bool ShouldRunClearDeadMount() { -#if !defined(WRT_JS_BRINGUP) auto wrtloader_count = VconfHandle(kWrtLoaderCount).Int(); LOG(INFO) << "vconf loader_count is " << wrtloader_count; if (wrtloader_count < NEED_CHECK_DEADMOUNT) { @@ -190,7 +189,6 @@ bool ShouldRunClearDeadMount() { return false; } VconfHandle(kWrtLoaderCount).Set(0, true); -#endif return true; } @@ -669,7 +667,6 @@ void NativeWebRuntimeDelegateTV::SetLocaleDir() { } void NativeWebRuntimeDelegateTV::PreloadVconfKeys() { -#if !defined(WRT_JS_BRINGUP) LOG(INFO) << "PreloadVconfKeys start"; const char* kVconfAccessibilityTts = "db/setting/accessibility/tts"; const char* kVconfHomeAppId = "db/appfw/overlay_home_appid"; @@ -699,7 +696,6 @@ void NativeWebRuntimeDelegateTV::PreloadVconfKeys() { VconfHandle(kVconfLowMemory).Int(); VconfHandle(kVconfProxy).Str(); LOG(INFO) << "PreloadVconfKeys end"; -#endif } void NativeWebRuntimeDelegateTV::PreloadFMS() { diff --git a/wrt/src/browser/tv/tv_window_manager.cc b/wrt/src/browser/tv/tv_window_manager.cc index 7858d08..5633c50 100755 --- a/wrt/src/browser/tv/tv_window_manager.cc +++ b/wrt/src/browser/tv/tv_window_manager.cc @@ -23,9 +23,7 @@ #include #include "base/logging.h" -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" -#endif #include "wrt/src/common/application_data.h" namespace wrt { @@ -254,9 +252,7 @@ std::string TvWindowManager::ShowTextOnScreen(HostUGTextType type) { LOG(ERROR) << "Invalid UG state"; return "UnknownError"; } -#if !defined(WRT_JS_BRINGUP) VconfHandle(key).Set(1); -#endif return "Success"; } @@ -280,9 +276,7 @@ std::string TvWindowManager::HideTextOnScreen(HostUGTextType type) { LOG(ERROR) << "Invalid UG state"; return "UnknownError"; } -#if !defined(WRT_JS_BRINGUP) VconfHandle(key).Set(0); -#endif return "Success"; } diff --git a/wrt/src/browser/tv/widget_state.cc b/wrt/src/browser/tv/widget_state.cc index b154e2c..3012cf7 100644 --- a/wrt/src/browser/tv/widget_state.cc +++ b/wrt/src/browser/tv/widget_state.cc @@ -17,9 +17,7 @@ #include "wrt/src/browser/tv/widget_state.h" #include "base/logging.h" -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" -#endif #include "wrt/src/browser/native_web_runtime.h" #include "wrt/src/browser/tv/ambient_mode.h" @@ -67,10 +65,8 @@ void WidgetStateProvider::OnStatusChanged(const std::string& status) { widget_status = status; std::string vconfkey = kPrefixVconfKeyWidgetStatus + widget_app_id; LOG(ERROR) << "[WidgetStatus] key :" << vconfkey << ", value :" << status; -#if !defined(WRT_JS_BRINGUP) VconfHandle(vconfkey).Set(status, true); VconfHandle(kVconfKeyStatusChange).Set(widget_app_id); -#endif NativeWebRuntime::GetInstance().NotifyStatusChanged(status); } @@ -97,12 +93,10 @@ void WidgetStateProvider::OnURLChanged(std::string url) { url.erase(found); } -#if !defined(WRT_JS_BRINGUP) std::string vkey = kPrefixVconfKeyWidgetStatus + widget_app_id + "_URL"; LOG(INFO) << "vconf key before :" << widget_url; LOG(INFO) << "vconf key after :" << vkey << ", value :" << url; VconfHandle(vkey).Set(url, true); -#endif widget_url = url; } diff --git a/wrt/src/browser/tv/wrt_native_window_tv.cc b/wrt/src/browser/tv/wrt_native_window_tv.cc index 829795c..2ea84b1 100644 --- a/wrt/src/browser/tv/wrt_native_window_tv.cc +++ b/wrt/src/browser/tv/wrt_native_window_tv.cc @@ -33,9 +33,7 @@ #include "gpu/config/gpu_switches.h" #include "media/base/media_switches.h" #include "third_party/blink/public/common/page/page_zoom.h" -#if !defined(WRT_JS_BRINGUP) #include "tizen_src/chromium_impl/tizen/vconf_handle.h" -#endif #include "ui/platform_window/platform_window.h" #include "wrt/src/base/platform_info.h" #include "wrt/src/browser/native_web_runtime.h" @@ -267,9 +265,6 @@ WRTNativeWindow::ScreenOrientation ConvertSensorOrientation( } bool CanSupportLandscapeScale() { -#if defined(WRT_JS_BRINGUP) - return false; -#else auto is_signage = IsSignageProduct(); if (!is_signage) return false; @@ -278,7 +273,6 @@ bool CanSupportLandscapeScale() { auto is_landscape_scale = "landscape_scale" == meta_data_info.GetValue(kScreenOrientation); return is_signage && is_landscape_scale && (rotate_status == 1); -#endif } } // namespace @@ -674,14 +668,12 @@ void WRTNativeWindowTV::SetAppMetaDataInfo() { ecore_evas_aux_hint_add( GetPlatformCanvas(), "wm.policy.win.transform.mode", "ratiofit"); -#if !defined(WRT_JS_BRINGUP) auto multi_screen_showed = VconfHandle(kMultiScreenInfoVconfKey).Str(); if (IsMultiScreenShowed(multi_screen_showed)) { int width = 1920, height = 1080; GetScreenResolution(width, height); SetScreenResolution(width * 0.3165, height); } -#endif vconf_notify_key_changed(kMultiScreenInfoVconfKey, MultiviewStateChangedCb, this); } @@ -789,7 +781,6 @@ void WRTNativeWindowTV::SetProxyInfo() { auto* browser_context = WRTBrowserContext::GetInstance(); DCHECK(browser_context); std::string proxy_info; -#if !defined(WRT_JS_BRINGUP) auto& meta_data_info = ApplicationData::GetInstance().meta_data_info(); if (meta_data_info.GetValue(kUseWebappProxy) == "true") { LOG(INFO) << "use.webapp.proxy is true"; @@ -797,7 +788,6 @@ void WRTNativeWindowTV::SetProxyInfo() { } else { proxy_info = VconfHandle(kProxyVconfKey).Str(); } -#endif if (proxy_info.empty() || proxy_info.find("://") == std::string::npos) { LOG(INFO) << "proxy address : " << proxy_info; return; @@ -962,7 +952,6 @@ void WRTNativeWindowTV::SetWindowEffect(bool enable) { void WRTNativeWindowTV::EnableVisibilitySetting() { std::string app_id = ApplicationData::GetInstance().app_id(); -#if !defined(WRT_JS_BRINGUP) VconfHandle(kMostRecentApp).Set(app_id); if (channel_changeable_) @@ -973,7 +962,6 @@ void WRTNativeWindowTV::EnableVisibilitySetting() { : false; VconfHandle("memory/VDWebApp/partial").Set(opt); LOG(INFO) << "memory/VDWebApp/partial set as " << opt; -#endif if (!alphaset_) { activateScreenSaver(const_cast("DEFAULT"), @@ -1003,7 +991,6 @@ void WRTNativeWindowTV::EnableVisibilitySetting() { } void WRTNativeWindowTV::DisableVisibilitySetting() { -#if !defined(WRT_JS_BRINGUP) std::string app_id = ApplicationData::GetInstance().app_id(); std::string most_recent_app = VconfHandle(kMostRecentApp).Str(); @@ -1023,7 +1010,6 @@ void WRTNativeWindowTV::DisableVisibilitySetting() { "{'app_id': '%s'}", app_id.c_str()); LOG(INFO) << "Set apps_recent_changed as " << json_str; VconfHandle("memory/eden/apps/apps_recent_changed").Set(json_str); -#endif } void WRTNativeWindowTV::VisibilityChangedAsBackground() { -- 2.7.4 From a5920de8b85ad5ac37156e2b856d3328d88a7112 Mon Sep 17 00:00:00 2001 From: zhaosy Date: Mon, 6 Mar 2023 10:47:33 +0800 Subject: [PATCH 10/16] [M108 Migration][WRTjs]add protection for DBusConnection Add protection for DBusConnection for avoid some abnormal crash happen. Reference Patch: https://review.tizen.org/gerrit/288901/ Change-Id: I42fd0770422bc4f826aa746e75b871d68efbaf3a Signed-off-by: zhaosy --- wrt/src/app/service_main.cc | 3 +-- wrt/src/browser/wrt_ipc.cc | 28 +++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/wrt/src/app/service_main.cc b/wrt/src/app/service_main.cc index 325662f..cf85223 100644 --- a/wrt/src/app/service_main.cc +++ b/wrt/src/app/service_main.cc @@ -73,7 +73,6 @@ void ChildCreated() { void ChildTerminated(int sig_no) { LOG(INFO) << "sig_no : " << sig_no; - wrt_ipc->SendMessage("CloseDBusConnection", ""); wrt_ipc.reset(); child_created = false; @@ -128,7 +127,7 @@ void OnAppControl(app_control_h app_control, void* data) { // not touch here. started_apps.erase(command_value); } - if (wrt_ipc->HasDbusOwner(kWrtDbusName)) { + if (wrt_ipc && wrt_ipc->HasDbusOwner(kWrtDbusName)) { wrt_ipc->SendMessage(command_key.c_str(), command_value.c_str()); } else { command_queue.push(std::make_pair(command_key, command_value)); diff --git a/wrt/src/browser/wrt_ipc.cc b/wrt/src/browser/wrt_ipc.cc index 23a80f5..d74491f 100755 --- a/wrt/src/browser/wrt_ipc.cc +++ b/wrt/src/browser/wrt_ipc.cc @@ -19,10 +19,16 @@ const char* InterProcessCommunication::Message::Sender() const { } void InterProcessCommunication::Message::CloseDBusConnection() const { - dbus_connection_close(connection_); + if (connection_) { + dbus_connection_close(connection_); + } } void InterProcessCommunication::Message::Reply(const char* argument) const { + if (!connection_) { + LOG(ERROR) << "connection_ is not valid"; + return; + } DBusMessage* reply = dbus_message_new_method_return(message_); dbus_message_append_args(reply, DBUS_TYPE_STRING, &argument, DBUS_TYPE_INVALID); dbus_connection_send(connection_, reply, nullptr); @@ -54,8 +60,11 @@ InterProcessCommunication::InterProcessCommunication(bool is_daemon) { } InterProcessCommunication::~InterProcessCommunication() { - dbus_connection_close(connection_); - dbus_connection_unref(connection_); + if (connection_) { + dbus_connection_close(connection_); + dbus_connection_unref(connection_); + connection_ = nullptr; + } } // static @@ -72,6 +81,10 @@ DBusHandlerResult InterProcessCommunication::OnMessage(DBusConnection* connectio std::string member = dbus_message_get_member(message); auto* ipc = reinterpret_cast(user_data); + if (!ipc || !ipc->connection_) { + LOG(ERROR) << "ipc or connection_ is not valid"; + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } auto iterator = ipc->message_handlers_.find(member); if (iterator != ipc->message_handlers_.end()) { DBusError error; @@ -110,6 +123,10 @@ void InterProcessCommunication::Listen() { } DBusMessage* InterProcessCommunication::InternalSendMessage(const char* receiver, const char* type, const char* argument, bool need_reply) { + if (!connection_) { + LOG(ERROR) << "connection_ is not valid"; + return nullptr; + } DBusMessage* message = dbus_message_new_method_call(receiver, WRT_DBUS_PATH, WRT_DBUS_NAME, type); if (!message) { LOG(ERROR) << "Fail to create dbus message"; @@ -184,6 +201,11 @@ bool InterProcessCommunication::SendMessageAndWaitReply(const char* receiver, co } bool InterProcessCommunication::HasDbusOwner(const char* dbus_name) { + if (!connection_) { + LOG(ERROR) << "connection_ is not valid"; + return false; + } + DBusError err; dbus_error_init(&err); -- 2.7.4 From d1d6f46539295592efee1c6b28e2d747f19db317 Mon Sep 17 00:00:00 2001 From: Venugopal S M Date: Thu, 2 Mar 2023 13:44:20 +0530 Subject: [PATCH 11/16] fixup! [MM] Use ESPP for media rendering Fix build errors due to difference in data type Change-Id: I1b1eb5837e499a386f5bd08a795d21c839518948 Signed-off-by: Venugopal S M --- tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h index 296c17f..9b25101 100644 --- a/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h +++ b/tizen_src/chromium_impl/media/filters/esplusplayer_buffer_observer.h @@ -11,7 +11,7 @@ namespace media { -using espp_buffer_size_t = unsigned long long; +using espp_buffer_size_t = uint64_t; // Buffering level in percent. const int kUnderrunBufferThreshold = 1; -- 2.7.4 From a21a93e46bd8951fcd15bf20c4b299af4d748d10 Mon Sep 17 00:00:00 2001 From: zhaosy Date: Mon, 6 Mar 2023 12:56:36 +0800 Subject: [PATCH 12/16] [M108 Migration][WRTjs][VD] Refactor key event handler RenderWidgetHostViewEfl is removed in Aura, so in EflEventHandler check registered keys and device names. Reference Patch: https://review.tizen.org/gerrit/281297/ Change-Id: I2d4eb524baa6c89998490172b0106dd24afa7f58 Signed-off-by: zhaosy --- .../ui/ozone/platform/efl/efl_event_handler.cc | 19 +++++++++++++++++++ .../ui/ozone/platform/efl/efl_event_handler.h | 9 +++++++++ wrt/src/browser/tv/input_device_manager.cc | 2 -- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc index c07f30e..bd18307 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.cc @@ -580,6 +580,13 @@ void EflEventHandler::OnKeyDown(void* data, LOG(INFO) << "Before consumed check (Key Name: " << key_down->key << ", Key State: Down)"; +#if BUILDFLAG(IS_TIZEN_TV) + if (!thiz->key_event_checker_.is_null() && + !thiz->key_event_checker_.Run(event_info, true)) { + return; + } +#endif + #if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsTvProfile()) { if (thiz->FilterIMEKeyDownEvent(key_down)) { @@ -626,6 +633,13 @@ void EflEventHandler::OnKeyUp(void* data, LOG(INFO) << "Before consumed check (Key Name: " << key_up->key << ", Key State: Up)"; +#if BUILDFLAG(IS_TIZEN_TV) + if (!thiz->key_event_checker_.is_null() && + !thiz->key_event_checker_.Run(event_info, false)) { + return; + } +#endif + #if BUILDFLAG(IS_TIZEN) if (IsMobileProfile() || IsTvProfile()) { if (thiz->FilterIMEKeyUpEvent(key_up)) { @@ -778,6 +792,11 @@ void EflEventHandler::ConvertUpToReturnBackIfNeeded(EVT* evt, bool is_press) { "same as Return Back key!"; } } + +void EflEventHandler::SetKeyEventChecker( + const base::RepeatingCallback& checker) { + key_event_checker_ = checker; +} #endif void EflEventHandler::OnMultiTouchDownEvent(void* data, diff --git a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h index cbeb94e..f717f12 100644 --- a/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h +++ b/tizen_src/chromium_impl/ui/ozone/platform/efl/efl_event_handler.h @@ -57,6 +57,11 @@ class EflEventHandler { } IMContextEfl* GetIMContextEfl() { return im_context_efl_; } +#if BUILDFLAG(IS_TIZEN_TV) + void SetKeyEventChecker( + const base::RepeatingCallback& checker); +#endif + private: void RegisterCallbacks(); void AddTouchCallbacks(); @@ -102,6 +107,10 @@ class EflEventHandler { EflWindow* window_ = nullptr; Evas_Object* native_view_ = nullptr; IMContextEfl* im_context_efl_ = nullptr; + +#if BUILDFLAG(IS_TIZEN_TV) + base::RepeatingCallback key_event_checker_; +#endif }; } // namespace ui diff --git a/wrt/src/browser/tv/input_device_manager.cc b/wrt/src/browser/tv/input_device_manager.cc index 72a3336..fa3d6d5 100644 --- a/wrt/src/browser/tv/input_device_manager.cc +++ b/wrt/src/browser/tv/input_device_manager.cc @@ -272,11 +272,9 @@ void InputDeviceManager::SetKeyEventChecker( LOG(INFO) << "SetKeyEventChecker"; if (event_handler_ != event_handler) { event_handler_ = event_handler; -#if !defined(WRT_JS_BRINGUP) event_handler_->SetKeyEventChecker( base::BindRepeating(&InputDeviceManager::CheckRegisteredKey, base::Unretained(this))); -#endif } } -- 2.7.4 From 7502b56f4415794d4a61639dc5b8e3cc463d5a46 Mon Sep 17 00:00:00 2001 From: zhaosy Date: Fri, 3 Mar 2023 15:40:04 +0800 Subject: [PATCH 13/16] [M108 Migration][VD] Do not overwrite process title with symbolic link In Chromium-efl, we exec from /usr/lib/chromium-efl/efl_webprocess. Therefore, we don't need to overwrite process title with symbolic link of /proc/self/exe. Before this patch, /proc/[pid]/comm of browser app is 'launchpad-loader'. After this patch, it will be 'browser'. Reference patch: https://review.tizen.org/gerrit/#/c/platform/framework/web/chromium-efl/+/269598/ Change-Id: Ic24db12dd7b447042accbc4434aa6cb18585b80c Signed-off-by: zhaosy --- content/common/set_process_title.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/common/set_process_title.cc b/content/common/set_process_title.cc index 04a0801..cb44edf 100644 --- a/content/common/set_process_title.cc +++ b/content/common/set_process_title.cc @@ -59,6 +59,9 @@ void SetProcessTitleFromCommandLine(const char** main_argv) { if (main_argv) setproctitle_init(main_argv); +// In Chromium-efl, we exec from /usr/lib/chromium-efl/efl_webprocess. +// Therefore, we can skip below processing. +#if !BUILDFLAG(IS_EFL) // In Linux we sometimes exec ourselves from /proc/self/exe, but this makes us // show up as "exe" in process listings. Read the symlink /proc/self/exe and // use the path it points at for our process title. Note that this is only for @@ -88,6 +91,7 @@ void SetProcessTitleFromCommandLine(const char** main_argv) { *base_name_storage = std::move(base_name); program_invocation_short_name = &(*base_name_storage)[0]; } +#endif // !BUILDFLAG(IS_EFL) #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) const base::CommandLine* command_line = -- 2.7.4 From d34700cd278e219276fc7a6f956fa11338920a77 Mon Sep 17 00:00:00 2001 From: zhaosy Date: Mon, 6 Mar 2023 10:21:11 +0800 Subject: [PATCH 14/16] [M108 Migration][WRTjs][VD] Apply auto submit OSD to P4 FET from TRAMS OSD maybe is changed in TRAMS, but we don't know it. So apply auto submit OSD to P4 FET branch(Once it's changed in P4, email will be recieved). ps.If OSD is changed in P4 FET, need to merge it to gerrit manually. Reference Patch: https://review.tizen.org/gerrit/286523/ Change-Id: I0ad2df3178d80175c34754ca71916980bca66486 Signed-off-by: zhaosy --- wrt/resources/tv_locales/TV_OSD.xls | Bin 35732 -> 0 bytes wrt/resources/tv_locales/_TRAMS_AUTO_SUBMIT_ON.txt | 1 + wrt/resources/tv_locales/af_ZA.po | 140 ++++++++++----------- wrt/resources/tv_locales/am_ET.po | 140 ++++++++++----------- wrt/resources/tv_locales/ar_AE.po | 140 ++++++++++----------- wrt/resources/tv_locales/as_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/az_AZ.po | 140 ++++++++++----------- wrt/resources/tv_locales/bg_BG.po | 140 ++++++++++----------- wrt/resources/tv_locales/bh_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/bn_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/bs_BA.po | 140 ++++++++++----------- .../tv_locales/chromium_wrtjs_OsdIdList.csv | 23 ++++ wrt/resources/tv_locales/ckb_IQ.po | 140 ++++++++++----------- wrt/resources/tv_locales/cs_CZ.po | 140 ++++++++++----------- wrt/resources/tv_locales/da_DK.po | 140 ++++++++++----------- wrt/resources/tv_locales/de_DE.po | 140 ++++++++++----------- wrt/resources/tv_locales/el_GR.po | 140 ++++++++++----------- wrt/resources/tv_locales/en_GB.po | 140 ++++++++++----------- wrt/resources/tv_locales/en_US.po | 140 ++++++++++----------- wrt/resources/tv_locales/es_ES.po | 140 ++++++++++----------- wrt/resources/tv_locales/es_MX.po | 140 ++++++++++----------- wrt/resources/tv_locales/et_EE.po | 140 ++++++++++----------- wrt/resources/tv_locales/fa_IR.po | 140 ++++++++++----------- wrt/resources/tv_locales/fi_FI.po | 140 ++++++++++----------- wrt/resources/tv_locales/fr_CA.po | 140 ++++++++++----------- wrt/resources/tv_locales/fr_FR.po | 140 ++++++++++----------- wrt/resources/tv_locales/gu_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/ha_NG.po | 140 ++++++++++----------- wrt/resources/tv_locales/he_IL.po | 140 ++++++++++----------- wrt/resources/tv_locales/hi_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/hr_HR.po | 140 ++++++++++----------- wrt/resources/tv_locales/hu_HU.po | 140 ++++++++++----------- wrt/resources/tv_locales/hy_AM.po | 140 ++++++++++----------- wrt/resources/tv_locales/id_ID.po | 140 ++++++++++----------- wrt/resources/tv_locales/ig_NG.po | 140 ++++++++++----------- wrt/resources/tv_locales/it_IT.po | 140 ++++++++++----------- wrt/resources/tv_locales/ja_JP.po | 140 ++++++++++----------- wrt/resources/tv_locales/ka_GE.po | 140 ++++++++++----------- wrt/resources/tv_locales/kk_KZ.po | 140 ++++++++++----------- wrt/resources/tv_locales/km_KH.po | 140 ++++++++++----------- wrt/resources/tv_locales/kn_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/ko_KR.po | 140 ++++++++++----------- wrt/resources/tv_locales/kok_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/ks_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/ku_TR.po | 140 ++++++++++----------- wrt/resources/tv_locales/lt_LT.po | 140 ++++++++++----------- wrt/resources/tv_locales/lv_LV.po | 140 ++++++++++----------- wrt/resources/tv_locales/mai_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/mi_NZ.po | 140 ++++++++++----------- wrt/resources/tv_locales/mk_MK.po | 140 ++++++++++----------- wrt/resources/tv_locales/ml_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/mn_MN.po | 140 ++++++++++----------- wrt/resources/tv_locales/mni_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/mr_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/ms_MY.po | 140 ++++++++++----------- wrt/resources/tv_locales/my_MM.po | 140 ++++++++++----------- wrt/resources/tv_locales/ne_NP.po | 140 ++++++++++----------- wrt/resources/tv_locales/nl_NL.po | 140 ++++++++++----------- wrt/resources/tv_locales/nn_NO.po | 140 ++++++++++----------- wrt/resources/tv_locales/or_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/pa_PK.po | 140 ++++++++++----------- wrt/resources/tv_locales/pl_PL.po | 140 ++++++++++----------- wrt/resources/tv_locales/pt_BR.po | 140 ++++++++++----------- wrt/resources/tv_locales/pt_PT.po | 140 ++++++++++----------- wrt/resources/tv_locales/ro_RO.po | 140 ++++++++++----------- wrt/resources/tv_locales/ru_RU.po | 140 ++++++++++----------- wrt/resources/tv_locales/sa_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/sat_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/sd_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/sk_SK.po | 140 ++++++++++----------- wrt/resources/tv_locales/sl_SI.po | 140 ++++++++++----------- wrt/resources/tv_locales/sq_AL.po | 140 ++++++++++----------- wrt/resources/tv_locales/sr_RS.po | 140 ++++++++++----------- wrt/resources/tv_locales/sv_SE.po | 140 ++++++++++----------- wrt/resources/tv_locales/sw_KE.po | 140 ++++++++++----------- wrt/resources/tv_locales/ta_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/te_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/th_TH.po | 140 ++++++++++----------- wrt/resources/tv_locales/tl_PH.po | 140 ++++++++++----------- wrt/resources/tv_locales/tr_TR.po | 140 ++++++++++----------- wrt/resources/tv_locales/tu_IN.po | 140 ++++++++++----------- wrt/resources/tv_locales/uk_UA.po | 140 ++++++++++----------- wrt/resources/tv_locales/ur_PK.po | 140 ++++++++++----------- wrt/resources/tv_locales/uz_UZ@cyrillic.po | 140 ++++++++++----------- wrt/resources/tv_locales/vi_VN.po | 140 ++++++++++----------- wrt/resources/tv_locales/xh_ZA.po | 140 ++++++++++----------- wrt/resources/tv_locales/yo_NG.po | 140 ++++++++++----------- wrt/resources/tv_locales/zh_CN.po | 140 ++++++++++----------- wrt/resources/tv_locales/zh_HK.po | 140 ++++++++++----------- wrt/resources/tv_locales/zh_TW.po | 140 ++++++++++----------- wrt/resources/tv_locales/zu_ZA.po | 140 ++++++++++----------- wrt/src/renderer/tv/wrt_renderer_client_tv.cc | 2 +- 92 files changed, 6185 insertions(+), 6161 deletions(-) delete mode 100755 wrt/resources/tv_locales/TV_OSD.xls create mode 100644 wrt/resources/tv_locales/_TRAMS_AUTO_SUBMIT_ON.txt create mode 100644 wrt/resources/tv_locales/chromium_wrtjs_OsdIdList.csv diff --git a/wrt/resources/tv_locales/TV_OSD.xls b/wrt/resources/tv_locales/TV_OSD.xls deleted file mode 100755 index c2b616197ba4f67747d64f07076f79dd7fdbab9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35732 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 z zoqsGC`lyYg!`0lyUEHMogO0#?BYdlQVwg*wRwrF{I~G;d!+QZM9QfiP`0+kHs+*CY zWL=<5s}L&YF8HP*&|zTEES8TljjJZ9EY6|SG{T}u6JrUuaF$#3cCbe?tA@bx?`NT)43@MvMrqb9=m1!|gjJW#2_=`YPzq92XS~gTBKEbR^ zO$fFrz6*6pk132}&q_AyOK%GbYRa&cWa|NcoMRCP$JSS-9%nCr%E z(`6`4481_g@mC$0huNj+l`>YHRhHw?#+aF8P#=<}5zcEbSnXj1nX@Jxdk(ujOTZkx ztw?bB8rjfVD(&UG(Frp2gLm5wDeW&fYV!RBH?{4CVbV^&X-jO10}|Z}3`Ps>kq+u` ziQ3SF7XsGYkGh`PbRFOxa?;e&_K+wGPU*L!23jT+Vpb?CdO&K!DR;b0N$(6LN9%Go!4Sa1~r<(ew zWy+q*^IpQ8AzW(I7aG>}kw5cFHcjN+gj$zg%3wWEa?{uP62epUXVdg$t%X{b)Y%`` z|HjAer{B#`MUPT`s((k^x|3`U-C0!VEwUP6%g1^gj{Muc9*0vpPyEyqD6Bl%w%_+! z$e?IiU(TtgfmQ!h$!)X+*;JUmnd+nu7212rg=Y&Dd(n`VE0{AHu->~=)R8a&@(*=J zQZ7-g!D=@62Kp(Mo=uRRlRJ3TPjH8qHGwgEzt9O8HB||N7RMBw@~XRqC+9k&33HS? z`h7yO^Z(fOs)NKybXOF`V3q9Z#3K>tx;%cnJiR`mSOl^;9stJ_NZB(S)cQKlACUzH zXi=__&bMtUD*M)i8*ntHWp#aA6O^`6WuLU*3C?s|>d0(ec%s1-vUv?Zc`UjajVyB}x z*=jI7vK)dxKjXK~ac z&xBozka4v&5XmBbKPuUoREc8;Z`6)_4raA?|Jff*pF>t~rt?E{V1|)4HBR`IX!1I% z9B=u(3h`;}Za3CL+wx|n+iRpHk^(RC0yj+2!&CsTgCwjNck;;M2!WGhN3X87XQ}{G z;EHQ&{p=#5MjRTzzj8~hh__3{vyuMtJ24TNiB{ zyJdv`@M8qM-_E3qzKn*FDsfWm`ejmoL=tZLTf>gWE8{he(m=ip9gnoz_pZiU{1XG! zQiR92BsD~Ds6pmmI(ot672>Fb1NZx0huV@Z_*U0$3iJ6`%*_0pzd9nB0mZcX&9F{z zkH!Rb6g#1^5MDc6*Tg>i=N)OASrq2c8*~@c8K+PS9mUZAUTBrmsbojuDPxvdo)wB> z)jJO#&JHmXJHEp1_d;S7FLMf?uT!IK?2fM^5*}JdXz|xTRDy!P3WKCdxbsO6q@M`6pB%-`uJ|b66*egZzMtaM7Ooo6hnk0b3>frP)f)4S_91OUL={0>Ez(2A^)j9UJ zI!tzKdG6lmuLJwS2101Gkcuy`gle>U3NeBcH*?_-Gdvw2(i_{FQ^F)~)ky^RPLcK& zfNpa~=*j!HN|KEwb#J6XGCuHHYkkjD_Af*W_Fpa9${S2LigIT6PO_x%K3}{u+6ELB zwtK6sIFs+f4^5&-YcK{6_yTiCDf`6fcr}M{oiSc?~Z?Dk#6HX*HnDMskkbVH1Z;yyx*&Ty1rgJn2fN-W99mKiIygqZ9 zxj6Gz7AMxet8fSNzI&Sw1nmHV;sb)x1G?d`8*R7W``p!U(<=O4`v1=lkcG2GnbKno z^kseU^R*dMt`QHTmDGmDsMfp^W2?_Q3AKX!)g%~;P(j+J6) zpghquj?cLY~yQ zJQASlxm8dfj6qW9>?S;Wv+)-m{N>A)k`5;y6{8A@E(@6Omr4x5%qar5Z6(A1=2+ly zO2f7w0)?JuTrfF1UB903<~GF9<#3N_*Q(V^M}_?2s2%2mrMvj z10(&^RuX#i^JCdBzT5)LO*D4Vq2C11WHCubW_5B=U$su#Rhjd_6}TE!uSO!1iMG`# z#qR7a`AkW-NjS&(0&l&!sS!YGX~;#lA#1_E9s=tTx*sFKGtP9~w0n<|Pk@v=i-{i+ zwT2}%{BW=&y7jd|HPW&d%meLqh8AAppA~* z^D9cs4{2Mu?ak5!2MZ+!?sW28=bX$j{|+&2TL{nE&X2b#7hx!oKMe0X9fg5jiu@Z) zjPon3;u1vu;^AP~6zfwfoRo;6))!RzSolcn_n% ze{!bFs3yYD0pw$&-Yf@ogA3*v`JU_k%0i=ntD1`!%}TyMp^EgraTtk+_QOvr*s~f= zsn3FCF+ES7-;6!!UECzGL5W{dzZh%gq-*&5B2Hm#%ra4|N|{9-d9+N=`fA9(OTD$1SL)4y6yy8DaY0^Z{kk$JKwU}r5)k}eXog` zvP>J=WFdDuL=&hib`d3;h#?2_~a{jReqr`Zi}zuxFIx zc}Du08i-jF8c>+6RT{zt2Bs@}BlNu*#`v!G#&&4X&1W}DsK1HjNd_&gvY=I6c)^xn zsoF-)jr#RwJ>Ae-LLI7aPPPA#t(ecPq#sHO!h!X^Vka$-GAv9>99WVF`W%9VOIDw8 z8;$w;D?!{36GxQD$XKkd?J$cBR~bsu?`lyD^^5kJ=On1Wq(cu>NfUi9Z}b>*d6q+= zi^E`yp)fHPaDkG?RLxZR^`fs)hqywCux6^?2!CT&@t~Wt^{0;xv^Vsx`-ttB4bsf1 zC*r+@`AB~!y|vNIJ~}~tH5y7Bd`&$tsWKfr!^)2&R?t)zQ)$tPd|2U=92M(%`tSig z&2?<9>ob@BW@LD&?by!+gGj|nCPgf6&8IQkE@L z4~x=(sWT|9N9&|5iXU5)Z*`NQ4#6Y%vLN1B3S|Ft?hUsWe#Tloa;9W8p~J2cd2env zYytwW#Wkjz^CvWnuU@%zi(uFAxwsg2@u2*q1&;*XwjkmR0TShhkJ}=Uj+l&LLo|6s zFMJZ+zg|vwN*PX+iPCPC+3JxJ*&k=JlAE1HP$M|`IyXHOJfjMaJ}f#Y_O2Hg~W?a^ylh8z`Cvfjv7D# zI#{93lM<;joz1S<#MatFS^M7+mX9msoDnk>Tqlu%0aOdC^lP{-aJ9q1XL?b{rG{t6zud4 zZcx36s(wd+axC~*=y}g2U61wWMnW4&8TxP69yoE(AWO-Eh?Bkw5x#wPSVzMw8#aBM zK)cH9NsjOo1QL&SnMA$wQ@?M!XbnTMO_1};MA}*s6rCuSQ-ktyYLSFJx1%)Ga2)tZ^$s*sebs%tdbS2*&+0O%cxj0^&_3vbLyJRDmU_ zU{(4vQJsh>lwVCeoYq#pWt5H< zlie?CJA&j!RqkF)i^Z0_^PrD+{kt$k8n5=$;O0%jdK39H0_wmWC#~XH6HkFze0hr2 zdteX0KdG0kW))vQEy3;HLeC;zb?3CvNtZxE-c!|^6ZkbAIr92 z^o=~LyM5I>WUaImJEA$?1eCZHJknW=9;`WOPl}+ocBV-G+0(@FSl(( z2<5kl+s>M`ow>m>VFw;LdRsqR#ouxW(V}}qwcb0$oKpPwpZQqfs`v{;t98x{K8`!Z zC9?K>MqB*8#YN$cFs{yq2V77WJ9^TgP-jJi!Y<<+pRws>6lc|5<$e7OLCeH5lttKR z3>{y@cmb56%OMloyq8;^vcs8)9xQiD(4Lv(zP%Lr=Syz>Z$9f4PSp(BAqHX11^eB- zhfo@V3~5)1Aisj$yQ<4b|0I$v0JyG5Wjn{1S~n0~Q_mo)HFs@AypUgkD2Alg^%8<0 zq{bIK%p)UIjRaq}Y33GUO2$0Pv71cA9^t{sfBLIAoJw*B0+wE$8>Fsa>)8GGf%*sY zY1WVig0p3L>W==p`(RJ%t>@-fCD0@-{T754daIK|I&Ef=?y3R)a_woL1O1h=*4GkL zIllKCWPMsha<6@YV0M;w)2Z^K)h;y*!5WF$;Q@7$h1Vb!{8ejsCQ7>dv3)#GFacyP zn%22sysAEEB4=m-byVE+aS{yBpqcZMF5C+axhHtb-I?QLy{%@*Qnt2nSCJi4IjQR$ zJjFh(qzbG-mW#k|llBWTk@@?0dZxIyz6{QqW&>>QGod3IEBcx5)j1I*WaE-3RS-1b zK>Ip$kc?54TucrAHDedhpi!fLaakYGFXjF*C-KpyC3A)m09qV_FS@jA2Sy>}V@f@B{maND~Hl~{vF zhVhQW-tR8RMP1#w$;3$_w#Ulqkj^wo)vduFF(SGtFB;Cd(nhS(J8btgAxH{9Lz#iuK z2`C)gl?EPB>Gyzmb$Ds8nJ_`P8fqkeeA8`(e`DNeTPmT-TD8R+8H8^i_3tGJ)kh7W zzEU;$7vARU!+Hm~y^13JpI@!Ml(O8DH`@<6nH~SmjJujWY?h`G-SAOqCa?cD zLOC`iYHCXrFGix%EmFWV5nx-;JtEunak$j2yWbS83gpMFCViytKhC%KE4dMa1`}`! zo+yZE``rt;&EQiXK!$q!>k&KSf`Z{bZ?I&Lj2n}JJ3}Bg;=cZtH0piTSx3RFXhq5z z!KpEK)?vI0SJmv%Z!vB{665l3CBM6(y^h(Ka4)f0c*9sqX+P|zYIcyX^U z^w8aDLJT4B2XJsDN`}oJ_+tg+#?_6aB0md;nj&;G(o3T*_K*|!?;46CT#Q&h&It>P zM)wCXmgne1TKCLB7e+9Nk3F<@;Jjr>oZE$>@hmHeX(5=Ns1+U9(By%0#4W*yd3L@t z0;4{u6Br=SBR?=Q(cZnERMdqr)`tOfBqedMt~R2V?O%gJbAc0$9t4qIJolCkE><(C zWg(CO0+xr!{@<$Zc&|#OP3JC#oyA3T5zQqYWYl+rS{boFyf=*zfiqY zqrQ}gwK~zBUeAZ|_FA_X-D(SaO|GMxL%i*QkEry0gPMfrHnR$a`z`~L+y;4a5_WRS zW@NXMt;#!%_pwRbrUhQ*SO?pJ;T9JX^Q#-fug2~h6R}}@BN2Lvw{GWY{dby>r=0L8vo(A)9at3-KC5m(+2koEAvjk0`)?ryCD?2$gi~kA zX@NgME{&OC=i?>}kg#sQEP)HL(M5DR)~zwefd(zhD&&QFr+i1`&c@V@Jb+~I!Ac%G z*HeZom6X`jF%WQx5y`Z7vI-s2e{483l7*4v8NiOpE5}Ub@k8r4f!EQKyyWwe5-bq` zS`Aa1RP>CXLprl)kp0 zo_b1U3Gr^_*uV cb&hidRtla28#>ptXIk!VXZ`)G5`Po diff --git a/wrt/resources/tv_locales/_TRAMS_AUTO_SUBMIT_ON.txt b/wrt/resources/tv_locales/_TRAMS_AUTO_SUBMIT_ON.txt new file mode 100644 index 0000000..9d76c90 --- /dev/null +++ b/wrt/resources/tv_locales/_TRAMS_AUTO_SUBMIT_ON.txt @@ -0,0 +1 @@ +DO NOT DELETE THIS FOLDER WHEN TRAMS AUTO SUBMIT IS ON \ No newline at end of file diff --git a/wrt/resources/tv_locales/af_ZA.po b/wrt/resources/tv_locales/af_ZA.po index 35445eb..39ec608 100755 --- a/wrt/resources/tv_locales/af_ZA.po +++ b/wrt/resources/tv_locales/af_ZA.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Gebruiker-bemagtiging" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifikaat-inligting" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webkennisgewing" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Bekragtiging word vereis." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Daar is probleme met die sekuriteitsertifikaat vir hierdie webwerf." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Laat hierdie webwerf toe om kennisgewings te wys" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Onthou voorkeur." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Gebruikernaam" - -msgid "COM_SID_PASSWORD" -msgstr "Wagwoord" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Aantekening" - -msgid "COM_SID_CANCEL" -msgstr "Kanselleer" - -msgid "COM_SID_ALLOW" -msgstr "Laat toe" - -msgid "COM_SID_DENY" -msgstr "Weier" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Druk en hou die <>-knoppie in om na iets te soek." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Jou oudio sal na <> gestuur word om sy stemherkenningsdiens te ontsper in ooreenstemming met <> se privaatheidsbeleid." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Kan nie die bladsy vind wat jy versoek het nie." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Druk die Return-knoppie om toe te maak." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Probeer asseblief later weer." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Gaan die huidige netwerkstatus na." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Gebruiker-bemagtiging" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifikaat-inligting" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webkennisgewing" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Bekragtiging word vereis." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Daar is probleme met die sekuriteitsertifikaat vir hierdie webwerf." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Laat hierdie webwerf toe om kennisgewings te wys" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Onthou voorkeur." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Gebruikernaam" + +msgid "COM_SID_PASSWORD" +msgstr "Wagwoord" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Aantekening" + +msgid "COM_SID_CANCEL" +msgstr "Kanselleer" + +msgid "COM_SID_ALLOW" +msgstr "Laat toe" + +msgid "COM_SID_DENY" +msgstr "Weier" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Druk en hou die <>-knoppie in om na iets te soek." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Jou oudio sal na <> gestuur word om sy stemherkenningsdiens te ontsper in ooreenstemming met <> se privaatheidsbeleid." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Kan nie die bladsy vind wat jy versoek het nie." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Druk die Gaan terug-knoppie om toe te maak." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Probeer asseblief later weer." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Gaan die huidige netwerkstatus na." + +msgid "COM_SID_ERROR_CODE" msgstr "Foutkode" \ No newline at end of file diff --git a/wrt/resources/tv_locales/am_ET.po b/wrt/resources/tv_locales/am_ET.po index 59b8423..6feb9b2 100755 --- a/wrt/resources/tv_locales/am_ET.po +++ b/wrt/resources/tv_locales/am_ET.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "የተጠቃሚ ማረጋገጫ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "የሰርቲፊኬት መረጃ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "የድር ማሳወቂያ" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ፈቃድ ያስፈልጋል።" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ለዚህ ጣቢያ የመድህን ምስክርነት ችግሮች አሉ።" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ይህ ድር ጣቢያ ማሳወቂያዎችን እንዲያሳይ ይፈቅዳል።" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "አማራጭ አስታውስ።" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "የተጠቃሚ ስም" - -msgid "COM_SID_PASSWORD" -msgstr "ፓስወርድ" - -msgid "COM_SID_OK" -msgstr "እሺ" - -msgid "SID_LOGIN" -msgstr "መግቢያ" - -msgid "COM_SID_CANCEL" -msgstr "ሰርዝ" - -msgid "COM_SID_ALLOW" -msgstr "ይፈቀድ" - -msgid "COM_SID_DENY" -msgstr "ይከልከል" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "የሆነ ነገር ለመፈለግ <> አዝራር ይጫኑና ይያዙ።" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "የእርስዎ ኦዲዮ በ<> የግላዊነት መመሪያ መሰረት በድምጽ መለየት አገልግሎትን ለማንቃት ወደ <> ይላካል።" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "የተጠየቀውን ገጽ ማግኘት አልተቻለም።" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ለመዝጋት Return አዝራርን ይጫኑ።" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "እባክዎ በኋላ እንደገና ይሞክሩ።" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ያሁኑ ኣውታረ መረብ ሁኔታ ቸክ ኣድርግ።" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "የተጠቃሚ ማረጋገጫ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "የሰርቲፊኬት መረጃ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "የድር ማሳወቂያ" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ፈቃድ ያስፈልጋል።" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ለዚህ ጣቢያ የመድህን ምስክርነት ችግሮች አሉ።" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ይህ ድር ጣቢያ ማሳወቂያዎችን እንዲያሳይ ይፈቅዳል።" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "አማራጭ አስታውስ።" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "የተጠቃሚ ስም" + +msgid "COM_SID_PASSWORD" +msgstr "ፓስወርድ" + +msgid "COM_SID_OK" +msgstr "እሺ" + +msgid "SID_LOGIN" +msgstr "መግቢያ" + +msgid "COM_SID_CANCEL" +msgstr "ሰርዝ" + +msgid "COM_SID_ALLOW" +msgstr "ይፈቀድ" + +msgid "COM_SID_DENY" +msgstr "ይከልከል" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "የሆነ ነገር ለመፈለግ <> አዝራር ይጫኑና ይያዙ።" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "የእርስዎ ኦዲዮ በ<> የግላዊነት መመሪያ መሰረት በድምጽ መለየት አገልግሎትን ለማንቃት ወደ <> ይላካል።" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "የተጠየቀውን ገጽ ማግኘት አልተቻለም።" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ለመዝጋት የተመለስ አዝራርን ይጫኑ።" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "እባክዎ በኋላ እንደገና ይሞክሩ።" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ያሁኑ ኣውታረ መረብ ሁኔታ ቸክ ኣድርግ።" + +msgid "COM_SID_ERROR_CODE" msgstr "ትክክነኛ ያልሆነ ኮድ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ar_AE.po b/wrt/resources/tv_locales/ar_AE.po index 3c61718..25f0cb9 100755 --- a/wrt/resources/tv_locales/ar_AE.po +++ b/wrt/resources/tv_locales/ar_AE.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "مصادقة المستخدم" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "معلومات الشهادة" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "إشعار الويب" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "تتطلب المصادقة." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "هناك مشكلات في شهادة الأمان لهذا الموقع." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "السماح لموقع الويب هذا بعرض إشعارات." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "تذكر التفضيلات." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "اسم المستخدم" - -msgid "COM_SID_PASSWORD" -msgstr "كلمة المرور" - -msgid "COM_SID_OK" -msgstr "موافق" - -msgid "SID_LOGIN" -msgstr "تسجيل الدخول" - -msgid "COM_SID_CANCEL" -msgstr "إلغاء الأمر" - -msgid "COM_SID_ALLOW" -msgstr "سماح" - -msgid "COM_SID_DENY" -msgstr "منع" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "‏‫اضغط مع الاستمرار على زر <> للبحث عن شيء ما." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "سيتم إرسال الصوت الخاص بك إلى <> لتمكين خدمة التعرف على الكلام الخاصة به بما يتوافق مع سياسة خصوصية <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "يتعذر العثور على الصفحة التي طلبتها." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "اضغط على الزر Return للإغلاق." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "يرجى إعادة المحاولة فيما بعد." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "قم بالتحقق من حالة الشبكة الحالية." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "مصادقة المستخدم" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "معلومات الشهادة" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "إشعار الويب" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "تتطلب المصادقة." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "هناك مشكلات في شهادة الأمان لهذا الموقع." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "السماح لموقع الويب هذا بعرض إشعارات." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "تذكر التفضيلات." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "اسم المستخدم" + +msgid "COM_SID_PASSWORD" +msgstr "كلمة المرور" + +msgid "COM_SID_OK" +msgstr "موافق" + +msgid "SID_LOGIN" +msgstr "تسجيل الدخول" + +msgid "COM_SID_CANCEL" +msgstr "إلغاء الأمر" + +msgid "COM_SID_ALLOW" +msgstr "سماح" + +msgid "COM_SID_DENY" +msgstr "منع" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "‏‫اضغط مع الاستمرار على زر <> للبحث عن شيء ما." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "سيتم إرسال الصوت الخاص بك إلى <> لتمكين خدمة التعرف على الكلام الخاصة به بما يتوافق مع سياسة خصوصية <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "يتعذر العثور على الصفحة التي طلبتها." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "اضغط على زر عودة للإغلاق." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "يرجى إعادة المحاولة فيما بعد." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "قم بالتحقق من حالة الشبكة الحالية." + +msgid "COM_SID_ERROR_CODE" msgstr "كود الخطأ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/as_IN.po b/wrt/resources/tv_locales/as_IN.po index d771304..7f05ba6 100755 --- a/wrt/resources/tv_locales/as_IN.po +++ b/wrt/resources/tv_locales/as_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ব্যৱহাৰকাৰী প্ৰমাণিকৰণ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "প্ৰমাণপত্ৰ তথ্য" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ৱেব অধিসূচনা" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "প্ৰমাণীকৰণৰ আৱশ্যক হৈছে৷" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "এই চাইটটোৰ বাবে নিৰাপত্তা প্ৰমাণপত্ৰত সমস্যা আছে৷" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "এই ৱেবছাইটটোক অধিসূচনাসমূহ দেখুৱাবলৈ অনুমতি দিয়ে৷" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "অগ্ৰাধিকাৰৰ কথা মনত ৰাখক৷" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ব্যৱহাৰকাৰী নাম" - -msgid "COM_SID_PASSWORD" -msgstr "পাছৱৰ্ড" - -msgid "COM_SID_OK" -msgstr "অ'কে" - -msgid "SID_LOGIN" -msgstr "লগইন" - -msgid "COM_SID_CANCEL" -msgstr "বাতিল কৰক" - -msgid "COM_SID_ALLOW" -msgstr "অনুমতি" - -msgid "COM_SID_DENY" -msgstr "অগ্ৰাহ্য" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "কিবা অনুসন্ধান কৰিবৰ বাবে <> বুটামটো টিপক আৰু ধৰি ৰাখক৷" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "আপোনাৰ অডিঅ' <>-ৰ গোপনীয়তাৰ নীতি অনুসৰি ইয়াৰ স্পিচ চিনাক্তকৰণ সেৱা সক্ষম কৰিবলৈ <>-লৈ প্ৰেৰণ কৰা হ'ব।" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "আপুনি অনুৰোধ কৰা পৃষ্ঠাটো বিচাৰিবলৈ অক্ষম।" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "বন্ধ কৰিবলৈ Return বুটামটো টিপক৷" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "অনুগ্ৰহ কৰি পিছত পুনৰ চেষ্টা কৰক৷" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "বৰ্তমানৰ নেটৱৰ্ক স্থিতি পৰীক্ষা কৰক৷" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ব্যৱহাৰকাৰী প্ৰমাণিকৰণ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "প্ৰমাণপত্ৰ তথ্য" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ৱেব অধিসূচনা" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "প্ৰমাণীকৰণৰ আৱশ্যক হৈছে৷" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "এই চাইটটোৰ বাবে নিৰাপত্তা প্ৰমাণপত্ৰত সমস্যা আছে৷" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "এই ৱেবছাইটটোক অধিসূচনাসমূহ দেখুৱাবলৈ অনুমতি দিয়ে৷" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "অগ্ৰাধিকাৰৰ কথা মনত ৰাখক৷" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ব্যৱহাৰকাৰী নাম" + +msgid "COM_SID_PASSWORD" +msgstr "পাছৱৰ্ড" + +msgid "COM_SID_OK" +msgstr "অ'কে" + +msgid "SID_LOGIN" +msgstr "লগইন" + +msgid "COM_SID_CANCEL" +msgstr "বাতিল কৰক" + +msgid "COM_SID_ALLOW" +msgstr "অনুমতি" + +msgid "COM_SID_DENY" +msgstr "অগ্ৰাহ্য" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "কিবা অনুসন্ধান কৰিবৰ বাবে <> বুটামটো টিপক আৰু ধৰি ৰাখক৷" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "আপোনাৰ অডিঅ' <>-ৰ গোপনীয়তাৰ নীতি অনুসৰি ইয়াৰ স্পিচ চিনাক্তকৰণ সেৱা সক্ষম কৰিবলৈ <>-লৈ প্ৰেৰণ কৰা হ'ব।" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "আপুনি অনুৰোধ কৰা পৃষ্ঠাটো বিচাৰিবলৈ অক্ষম।" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "বন্ধ কৰিবলৈ ঘূৰা বুটামটো দবাওক৷" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "অনুগ্ৰহ কৰি পিছত পুনৰ চেষ্টা কৰক৷" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "বৰ্তমানৰ নেটৱৰ্ক স্থিতি পৰীক্ষা কৰক৷" + +msgid "COM_SID_ERROR_CODE" msgstr "ত্ৰুটি কোড" \ No newline at end of file diff --git a/wrt/resources/tv_locales/az_AZ.po b/wrt/resources/tv_locales/az_AZ.po index 5a31055..cacadb5 100755 --- a/wrt/resources/tv_locales/az_AZ.po +++ b/wrt/resources/tv_locales/az_AZ.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "İstifadəçinin Əsilliyinin Yoxlanması" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifikatla bağlı məlumat" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Veb bildiriş" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Əsilliyin yoxlanması tələb olunur." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Bu sayt üzrə təhlükəsizlik sertifikatları ilə bağlı problemlər mövcuddur." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Bu veb-sayta bildirişləri göstərmək imkanı verir." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Xatırlatma seçimi." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "İstifadəçi adı" - -msgid "COM_SID_PASSWORD" -msgstr "Parol" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Giriş" - -msgid "COM_SID_CANCEL" -msgstr "Ləğv et" - -msgid "COM_SID_ALLOW" -msgstr "İcazə ver" - -msgid "COM_SID_DENY" -msgstr "Rədd et" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Axtarış üçün <> düyməsini basıb saxlayın." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> məxfilik siyasətinə uyğun olaraq nitqin tanınması xidmətini aktivləşdirmək üçün audionuz <> cihazına göndəriləcəkdir." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Sorğuladığınız səhifəni tapmaq mümkün deyil." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Bağlamaq üçün Return düyməsinə basın." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Lütfən daha sonra yenidən cəhd edin." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Mövcud şəbəkə vəziyyətini yoxlayın." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "İstifadəçinin Əsilliyinin Yoxlanması" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifikatla bağlı məlumat" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Veb bildiriş" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Əsilliyin yoxlanması tələb olunur." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Bu sayt üzrə təhlükəsizlik sertifikatları ilə bağlı problemlər mövcuddur." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Bu veb-sayta bildirişləri göstərmək imkanı verir." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Xatırlatma seçimi." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "İstifadəçi adı" + +msgid "COM_SID_PASSWORD" +msgstr "Parol" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Giriş" + +msgid "COM_SID_CANCEL" +msgstr "Ləğv et" + +msgid "COM_SID_ALLOW" +msgstr "İcazə ver" + +msgid "COM_SID_DENY" +msgstr "Rədd et" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Axtarış üçün <> düyməsini basıb saxlayın." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> məxfilik siyasətinə uyğun olaraq nitqin tanınması xidmətini aktivləşdirmək üçün audionuz <> cihazına göndəriləcəkdir." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Sorğuladığınız səhifəni tapmaq mümkün deyil." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Bağlamaq üçün Qayıt düyməsinə basın." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Lütfən daha sonra yenidən cəhd edin." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Mövcud şəbəkə vəziyyətini yoxlayın." + +msgid "COM_SID_ERROR_CODE" msgstr "Səhv Kodu" \ No newline at end of file diff --git a/wrt/resources/tv_locales/bg_BG.po b/wrt/resources/tv_locales/bg_BG.po index 6a6e5d5..616666a0 100755 --- a/wrt/resources/tv_locales/bg_BG.po +++ b/wrt/resources/tv_locales/bg_BG.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Удостоверяване на потребител" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Информация за сертификата" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Уеб уведомяване" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Изисква се удостоверяване." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Има проблеми със сертификата за защита за този сайт." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Разрешава на този уеб сайт да показва уведомявания." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Запомни предпочитанията." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Потребителско име" - -msgid "COM_SID_PASSWORD" -msgstr "Парола" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Влизане" - -msgid "COM_SID_CANCEL" -msgstr "Отказ" - -msgid "COM_SID_ALLOW" -msgstr "Позволи" - -msgid "COM_SID_DENY" -msgstr "Забрани" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Натиснете и задръжте бутона <>, за да потърсите нещо." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Вашето аудио ще бъде изпратено към <>, за да се активира услугата за разпознаване на реч в съответствие с правилата за поверителност на <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Поисканата от вас страница не може да бъде намерена." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Натиснете бутона Return, за да затворите." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Моля, опитайте пак по-късно." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Проверете настоящото състояние на мрежата." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Удостоверяване на потребител" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Информация за сертификата" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Уеб уведомяване" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Изисква се удостоверяване." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Има проблеми със сертификата за защита за този сайт." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Разрешава на този уеб сайт да показва уведомявания." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Запомни предпочитанията." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Потребителско име" + +msgid "COM_SID_PASSWORD" +msgstr "Парола" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Влизане" + +msgid "COM_SID_CANCEL" +msgstr "Отказ" + +msgid "COM_SID_ALLOW" +msgstr "Позволи" + +msgid "COM_SID_DENY" +msgstr "Забрани" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Натиснете и задръжте бутона <>, за да потърсите нещо." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Вашето аудио ще бъде изпратено към <>, за да се активира услугата за разпознаване на реч в съответствие с правилата за поверителност на <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Поисканата от вас страница не може да бъде намерена." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Натиснете бутона за връщане, за да затворите." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Моля, опитайте пак по-късно." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Проверете настоящото състояние на мрежата." + +msgid "COM_SID_ERROR_CODE" msgstr "Код на грешка" \ No newline at end of file diff --git a/wrt/resources/tv_locales/bh_IN.po b/wrt/resources/tv_locales/bh_IN.po index 869e59d..ae43d90 100755 --- a/wrt/resources/tv_locales/bh_IN.po +++ b/wrt/resources/tv_locales/bh_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "युज़र ओथेन्टिकेशन" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "सर्टिफिकेट माहिती" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब नोटिफिकेशन" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ओथेन्टिकेशन जरूरी छे." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "आ साईट माटे सुरक्षा प्रमाणपत्र साथे समस्याओ छे." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "आ वेबसाइटने नोटीफिकेशन्स बताववानी मंजूरी आपे छे." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "प्रिफरेंस याद राखे छे." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "उपयोगकर्ता नाम" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "ठीक छे" - -msgid "SID_LOGIN" -msgstr "लोग इन" - -msgid "COM_SID_CANCEL" -msgstr "रद" - -msgid "COM_SID_ALLOW" -msgstr "छूट आपो" - -msgid "COM_SID_DENY" -msgstr "नकारो" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "कंईक शोधवा <> बटन दबावो अने पकडी राखो." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "तमारो ऑडिओ <> नी गोपनीयता नीति प्रमाणे स्पीच ओळख सर्विस सक्षम करवा <> पर मोकलवामां आवशे." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "तमे विनन्ति करी ते पानुं शोधवामां असमर्थ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बंध करवा Return बटन दबावो." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "कृपा करीने फरी थी कोशिस करो." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "प्रवर्तमान नेटवर्क स्थिति तपासो." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "युज़र ओथेन्टिकेशन" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "सर्टिफिकेट माहिती" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब नोटिफिकेशन" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ओथेन्टिकेशन जरूरी छे." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "आ साईट माटे सुरक्षा प्रमाणपत्र साथे समस्याओ छे." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "आ वेबसाइटने नोटीफिकेशन्स बताववानी मंजूरी आपे छे." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "प्रिफरेंस याद राखे छे." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "उपयोगकर्ता नाम" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "ठीक छे" + +msgid "SID_LOGIN" +msgstr "लोग इन" + +msgid "COM_SID_CANCEL" +msgstr "रद" + +msgid "COM_SID_ALLOW" +msgstr "छूट आपो" + +msgid "COM_SID_DENY" +msgstr "नकारो" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "कंईक शोधवा <> बटन दबावो अने पकडी राखो." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "तमारो ऑडिओ <> नी गोपनीयता नीति प्रमाणे स्पीच ओळख सर्विस सक्षम करवा <> पर मोकलवामां आवशे." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "तमे विनन्ति करी ते पानुं शोधवामां असमर्थ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "बंध करवा परत बटन दबावो." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "कृपा करीने फरी थी कोशिस करो." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "प्रवर्तमान नेटवर्क स्थिति तपासो." + +msgid "COM_SID_ERROR_CODE" msgstr "भूल कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/bn_IN.po b/wrt/resources/tv_locales/bn_IN.po index a4fc544..e4ca4e1 100755 --- a/wrt/resources/tv_locales/bn_IN.po +++ b/wrt/resources/tv_locales/bn_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ব্যবহারকারীর অনুমোদন" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "সার্টিফিকেটের তথ্য" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ওয়েব বিজ্ঞপ্তি" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "অনুমোদন প্রয়োজন।" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "এই সাইটটির নিরাপত্তা সার্টিফিকেট নিয়ে সমস্যা রয়েছে।" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "এই ওয়েবসাইটটিকে বিজ্ঞপ্তিসমূহ দেখাতে অনুমত করে।" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "পছন্দ মনে রাখুন।" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ব্যবহারকারীর নাম" - -msgid "COM_SID_PASSWORD" -msgstr "পাসওয়ার্ড" - -msgid "COM_SID_OK" -msgstr "ওকে" - -msgid "SID_LOGIN" -msgstr "লগইন" - -msgid "COM_SID_CANCEL" -msgstr "বাতিল করুন" - -msgid "COM_SID_ALLOW" -msgstr "অনুমতি দিন" - -msgid "COM_SID_DENY" -msgstr "অস্বীকার" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "কিছু খুঁজতে <> বোতামটি টিপুন এবং ধরে থাকুন।" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<>-এর গোপনীয়তা নীতি অনুযায়ী স্বর স্বীকৃতি পরিষেবা সক্রিয় করতে আপনার অডিও <>-তে পাঠানো হবে।" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "আপনার অনুরোধ করা পেজ খুঁজে পাওয়া যাচ্ছেনা।" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "বন্ধ করতে Return বোতামটি টিপুন।" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "দয়া করে পরে আবার চেষ্টা করুন।" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "বর্তমান নেটওয়ার্কের স্থিতি পরীক্ষা করুন৷" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ব্যবহারকারীর অনুমোদন" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "সার্টিফিকেটের তথ্য" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ওয়েব বিজ্ঞপ্তি" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "অনুমোদন প্রয়োজন।" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "এই সাইটটির নিরাপত্তা সার্টিফিকেট নিয়ে সমস্যা রয়েছে।" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "এই ওয়েবসাইটটিকে বিজ্ঞপ্তিসমূহ দেখাতে অনুমত করে।" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "পছন্দ মনে রাখুন।" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ব্যবহারকারীর নাম" + +msgid "COM_SID_PASSWORD" +msgstr "পাসওয়ার্ড" + +msgid "COM_SID_OK" +msgstr "ওকে" + +msgid "SID_LOGIN" +msgstr "লগইন" + +msgid "COM_SID_CANCEL" +msgstr "বাতিল করুন" + +msgid "COM_SID_ALLOW" +msgstr "অনুমতি দিন" + +msgid "COM_SID_DENY" +msgstr "অস্বীকার" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "কিছু খুঁজতে <> বোতামটি টিপুন এবং ধরে থাকুন।" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<>-এর গোপনীয়তা নীতি অনুযায়ী স্বর স্বীকৃতি পরিষেবা সক্রিয় করতে আপনার অডিও <>-তে পাঠানো হবে।" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "আপনার অনুরোধ করা পেজ খুঁজে পাওয়া যাচ্ছেনা।" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "বন্ধ করতে ফিরে যান বোতামটি টিপুন।" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "দয়া করে পরে আবার চেষ্টা করুন।" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "বর্তমান নেটওয়ার্কের স্থিতি পরীক্ষা করুন৷" + +msgid "COM_SID_ERROR_CODE" msgstr "ত্রুটির কোড" \ No newline at end of file diff --git a/wrt/resources/tv_locales/bs_BA.po b/wrt/resources/tv_locales/bs_BA.po index 87f110e..d06627c 100755 --- a/wrt/resources/tv_locales/bs_BA.po +++ b/wrt/resources/tv_locales/bs_BA.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Provjera vjerodostojnosti korisnika" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informacije o certifikatu" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web obavještenja" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Potrebna je provjera vjerodostojnosti." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Postoje problemi sa sigurnosnom potvrdom za ovu stranicu." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Dozvoljava ovoj web stranici da prikazuje obavještenja." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Zapamti preferencu." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Korisničko ime" - -msgid "COM_SID_PASSWORD" -msgstr "Lozinka" - -msgid "COM_SID_OK" -msgstr "U redu" - -msgid "SID_LOGIN" -msgstr "Prijava" - -msgid "COM_SID_CANCEL" -msgstr "Otkaži" - -msgid "COM_SID_ALLOW" -msgstr "Dozvoli" - -msgid "COM_SID_DENY" -msgstr "Odbij" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Pritisnite i držite dugme <> da biste pretraživali." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Vaš audio zapis će biti poslat <> kako bi se omogućila upotreba njene usluge prepoznavanja govora u skladu sa politikom privatnosti <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Nije moguće pronaći stranicu koju ste tražili." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Pritisnite dugme Return da biste zatvorili." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Pokušajte ponovno kasnije." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Provjerite trenutni status mreže." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Provjera vjerodostojnosti korisnika" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informacije o certifikatu" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web obavještenja" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Potrebna je provjera vjerodostojnosti." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Postoje problemi sa sigurnosnom potvrdom za ovu stranicu." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Dozvoljava ovoj web stranici da prikazuje obavještenja." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Zapamti preferencu." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Korisničko ime" + +msgid "COM_SID_PASSWORD" +msgstr "Lozinka" + +msgid "COM_SID_OK" +msgstr "U redu" + +msgid "SID_LOGIN" +msgstr "Prijava" + +msgid "COM_SID_CANCEL" +msgstr "Otkaži" + +msgid "COM_SID_ALLOW" +msgstr "Dozvoli" + +msgid "COM_SID_DENY" +msgstr "Odbij" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Pritisnite i držite dugme <> da biste pretraživali." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Vaš audio zapis će biti poslat <> kako bi se omogućila upotreba njene usluge prepoznavanja govora u skladu sa politikom privatnosti <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Nije moguće pronaći stranicu koju ste tražili." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pritisnite dugme Povratak da biste zatvorili." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Pokušajte ponovno kasnije." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Provjerite trenutni status mreže." + +msgid "COM_SID_ERROR_CODE" msgstr "Pogreška kôda" \ No newline at end of file diff --git a/wrt/resources/tv_locales/chromium_wrtjs_OsdIdList.csv b/wrt/resources/tv_locales/chromium_wrtjs_OsdIdList.csv new file mode 100644 index 0000000..97961ee --- /dev/null +++ b/wrt/resources/tv_locales/chromium_wrtjs_OsdIdList.csv @@ -0,0 +1,23 @@ +OSD ID,Full Translation +COM_MRMS_CBAGT_MAIN,N +COM_SID_WEBAPP_CERTIFICATE_INFO,N +COM_SID_WEBAPP_WEB_NOTIFICATION,N +COM_TV_SID_AUTHENICATION_RQEUIRED,N +COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE,N +COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS,N +TV_SID_REMEMVER_PREFERENCE,N +COM_TEXT_USER_NAME_P,N +COM_SID_PASSWORD,N +COM_SID_OK,N +SID_LOGIN,N +COM_SID_CANCEL,N +COM_SID_ALLOW,N +COM_SID_DENY,N +TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR,N +TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG,N +COM_ICON_VOICE,N +TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED,N +TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE,N +TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER,N +COM_CHECK_THE_CURRENT_NETWORK_STATUS,N +COM_SID_ERROR_CODE,N \ No newline at end of file diff --git a/wrt/resources/tv_locales/ckb_IQ.po b/wrt/resources/tv_locales/ckb_IQ.po index bde037b..64ae39e 100755 --- a/wrt/resources/tv_locales/ckb_IQ.po +++ b/wrt/resources/tv_locales/ckb_IQ.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "بڕواپێدانی بەکارهێنەر" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "زانیاری بڕوانامە" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ئاگانامەی وێب" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "بڕواپێدان پێویستە." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "گرفت هەیە لە بڕوانامەی ئاسایشی ئەم سایتەدا." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ڕێگە بەم وێبسایتە دەدات ئاگانامەکان پیشان بدات." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "بیرکەوتنەوەی پەسەندیەکان." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ناوی بەکارهێنەر" - -msgid "COM_SID_PASSWORD" -msgstr "نهێنوشە" - -msgid "COM_SID_OK" -msgstr "باشە" - -msgid "SID_LOGIN" -msgstr "چوونە ناوەوە" - -msgid "COM_SID_CANCEL" -msgstr "بەتاڵکردنەوە" - -msgid "COM_SID_ALLOW" -msgstr "ڕێپێدان" - -msgid "COM_SID_DENY" -msgstr "ڕەتكردنەوە" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "دوگمەی <> دابگرە و ڕابگرە بۆ گەڕان بۆ شتێک." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "دەنگییت دەنێررێت بۆ <> بۆ چالاککردنی ڕاژەی ناسینەوەی دەنگ بەگوێرەی سیاسەتی تایبەتمەندی <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ناتوانێت ئەو لاپەڕەیە بدۆزێتەوە کە داواتکردووە." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "دوگمەی Return دابگرە بۆ داخستن." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "پاشتر دوبارە هەوڵ بدە." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "دۆخی تۆڕی ئێستا بپشكنە." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "بڕواپێدانی بەکارهێنەر" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "زانیاری بڕوانامە" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ئاگانامەی وێب" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "بڕواپێدان پێویستە." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "گرفت هەیە لە بڕوانامەی ئاسایشی ئەم سایتەدا." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ڕێگە بەم وێبسایتە دەدات ئاگانامەکان پیشان بدات." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "بیرکەوتنەوەی پەسەندیەکان." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ناوی بەکارهێنەر" + +msgid "COM_SID_PASSWORD" +msgstr "نهێنوشە" + +msgid "COM_SID_OK" +msgstr "باشە" + +msgid "SID_LOGIN" +msgstr "چوونە ناوەوە" + +msgid "COM_SID_CANCEL" +msgstr "بەتاڵکردنەوە" + +msgid "COM_SID_ALLOW" +msgstr "ڕێپێدان" + +msgid "COM_SID_DENY" +msgstr "ڕەتكردنەوە" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "دوگمەی <> دابگرە و ڕابگرە بۆ گەڕان بۆ شتێک." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "دەنگییت دەنێررێت بۆ <> بۆ چالاککردنی ڕاژەی ناسینەوەی دەنگ بەگوێرەی سیاسەتی تایبەتمەندی <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ناتوانێت ئەو لاپەڕەیە بدۆزێتەوە کە داواتکردووە." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "دوگمەی گەڕانەوە دابگرە بۆ داخستن." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "پاشتر دوبارە هەوڵ بدە." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "دۆخی تۆڕی ئێستا بپشكنە." + +msgid "COM_SID_ERROR_CODE" msgstr "کۆدی هەڵە" \ No newline at end of file diff --git a/wrt/resources/tv_locales/cs_CZ.po b/wrt/resources/tv_locales/cs_CZ.po index bf22a65..003931e 100755 --- a/wrt/resources/tv_locales/cs_CZ.po +++ b/wrt/resources/tv_locales/cs_CZ.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Ověření uživatele" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informace o certifikátu" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webové oznámení" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Je vyžadováno ověření." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Došlo k potížím s certifikátem zabezpečení této stránky." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Povolí tomuto webu zobrazovat oznámení." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Zapamatovat preference." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Uživatelské jméno" - -msgid "COM_SID_PASSWORD" -msgstr "Heslo" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Přihlásit" - -msgid "COM_SID_CANCEL" -msgstr "Zrušit" - -msgid "COM_SID_ALLOW" -msgstr "Povolit" - -msgid "COM_SID_DENY" -msgstr "Zakázat" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Chcete-li něco vyhledat, stiskněte a přidržte tlačítko <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Vaše zvuková nahrávka bude odeslána společnosti <> pro aktivaci služby rozpoznávání hlasu v souladu se zásadami ochrany osobních údajů společnosti <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Požadovaná stránka nebyla nalezena." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Stisknutím tlačítka Return zavřete." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Opakujte akci později." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Zkontrolujte stav sítě." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Ověření uživatele" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informace o certifikátu" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webové oznámení" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Je vyžadováno ověření." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Došlo k potížím s certifikátem zabezpečení této stránky." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Povolí tomuto webu zobrazovat oznámení." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Zapamatovat preference." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Uživatelské jméno" + +msgid "COM_SID_PASSWORD" +msgstr "Heslo" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Přihlásit" + +msgid "COM_SID_CANCEL" +msgstr "Zrušit" + +msgid "COM_SID_ALLOW" +msgstr "Povolit" + +msgid "COM_SID_DENY" +msgstr "Zakázat" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Chcete-li něco vyhledat, stiskněte a přidržte tlačítko <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Vaše zvuková nahrávka bude odeslána společnosti <> pro aktivaci služby rozpoznávání hlasu v souladu se zásadami ochrany osobních údajů společnosti <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Požadovaná stránka nebyla nalezena." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Stisknutím tlačítka Zpět zavřete stránku." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Opakujte akci později." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Zkontrolujte stav sítě." + +msgid "COM_SID_ERROR_CODE" msgstr "Kód chyby" \ No newline at end of file diff --git a/wrt/resources/tv_locales/da_DK.po b/wrt/resources/tv_locales/da_DK.po index 630d2e8..f64cbaf 100755 --- a/wrt/resources/tv_locales/da_DK.po +++ b/wrt/resources/tv_locales/da_DK.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Brugergodkendelse" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Certifikatoplysninger" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webmeddelelse" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Godkendelse påkrævet." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Der er problemer med dette websteds sikkerhedscertifikat." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Tillad, at dette websted viser meddelelser." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Husk præference." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Brugernavn" - -msgid "COM_SID_PASSWORD" -msgstr "Adgangskode" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Annuller" - -msgid "COM_SID_ALLOW" -msgstr "Tillad" - -msgid "COM_SID_DENY" -msgstr "Afvis" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Tryk på knappen <>, og hold den nede for at søge efter noget." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Din lyd sendes til <> for at aktivere deres talegenkendelsestjeneste i overensstemmelse med fortrolighedspolitikken hos <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Kan ikke finde den side, du har anmodet om." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Tryk på knappen Return for at lukke." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Prøv igen senere." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Kontrollér netværkets status." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Brugergodkendelse" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Certifikatoplysninger" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webmeddelelse" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Godkendelse påkrævet." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Der er problemer med dette websteds sikkerhedscertifikat." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Tillad, at dette websted viser meddelelser." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Husk præference." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Brugernavn" + +msgid "COM_SID_PASSWORD" +msgstr "Adgangskode" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Annuller" + +msgid "COM_SID_ALLOW" +msgstr "Tillad" + +msgid "COM_SID_DENY" +msgstr "Afvis" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Tryk på knappen <>, og hold den nede for at søge efter noget." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Din lyd sendes til <> for at aktivere deres talegenkendelsestjeneste i overensstemmelse med fortrolighedspolitikken hos <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Kan ikke finde den side, du har anmodet om." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Tryk på knappen Retur for at lukke." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Prøv igen senere." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Kontrollér netværkets status." + +msgid "COM_SID_ERROR_CODE" msgstr "Fejlkode" \ No newline at end of file diff --git a/wrt/resources/tv_locales/de_DE.po b/wrt/resources/tv_locales/de_DE.po index 741951e..c053381 100755 --- a/wrt/resources/tv_locales/de_DE.po +++ b/wrt/resources/tv_locales/de_DE.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Benutzer-Authentif." - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Zertifikatsinformationen" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web-Benachrichtigungen" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Authentifizierung erforderlich." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Es bestehen Probleme mit dem Sicherheitszertifikat dieser Website." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Hier werden Mitteilungen von der Website angezeigt." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Voreinstellung speichern." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Benutzername" - -msgid "COM_SID_PASSWORD" -msgstr "Passwort" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Anmelden" - -msgid "COM_SID_CANCEL" -msgstr "Abbrechen" - -msgid "COM_SID_ALLOW" -msgstr "Zulassen" - -msgid "COM_SID_DENY" -msgstr "Verbiet." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Drücken und halten Sie Taste „<>“ gedrückt, um eine Suche zu starten." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ihre Audiodaten werden an <> gesendet, um dessen Spracherkennungsdienst entsprechend der Datenschutzrichtlinie von <> zu aktivieren." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Die angeforderte Seite kann nicht gefunden werden." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Drücken Sie zum Schließen die Taste Return." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Später erneut versuchen." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Überprüfen Sie den aktuellen Netzwerkstatus." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Benutzer-Authentif." + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Zertifikatsinformationen" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web-Benachrichtigungen" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Authentifizierung erforderlich." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Es bestehen Probleme mit dem Sicherheitszertifikat dieser Website." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Hier werden Mitteilungen von der Website angezeigt." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Voreinstellung speichern." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Benutzername" + +msgid "COM_SID_PASSWORD" +msgstr "Passwort" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Anmelden" + +msgid "COM_SID_CANCEL" +msgstr "Abbrechen" + +msgid "COM_SID_ALLOW" +msgstr "Zulassen" + +msgid "COM_SID_DENY" +msgstr "Verbiet." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Drücken und halten Sie Taste „<>“ gedrückt, um eine Suche zu starten." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ihre Audiodaten werden an <> gesendet, um dessen Spracherkennungsdienst entsprechend der Datenschutzrichtlinie von <> zu aktivieren." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Die angeforderte Seite kann nicht gefunden werden." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Drücken Sie zum Schließen die Zurück-Taste." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Später erneut versuchen." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Überprüfen Sie den aktuellen Netzwerkstatus." + +msgid "COM_SID_ERROR_CODE" msgstr "Fehlercode" \ No newline at end of file diff --git a/wrt/resources/tv_locales/el_GR.po b/wrt/resources/tv_locales/el_GR.po index 88681e7..91aef68 100755 --- a/wrt/resources/tv_locales/el_GR.po +++ b/wrt/resources/tv_locales/el_GR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Έλεγχος ταυτότητας χρήστη" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Πληροφορίες πιστοποιητικού" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Ειδοποίηση web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Απαιτείται έλεγχος ταυτότητας." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Υπάρχουν προβλήματα με το πιστοποιητικό ασφάλειας για αυτήν την τοποθεσία." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Επιτρέπει σε αυτήν την τοποθεσία web να εμφανίζει ειδοποιήσεις." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Απομνημόνευση προτίμησης." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Όνομα χρήστη" - -msgid "COM_SID_PASSWORD" -msgstr "Κωδικός πρόσβ." - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Σύνδεση" - -msgid "COM_SID_CANCEL" -msgstr "Ακύρωση" - -msgid "COM_SID_ALLOW" -msgstr "Να επ." - -msgid "COM_SID_DENY" -msgstr "Απόρ/ψη" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Πιέστε παρατεταμένα το κουμπί <> για να αναζητήσετε κάτι." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ο ήχος θα σταλεί στην <> για την ενεργοποίηση της υπηρεσίας αναγνώρισης ομιλίας σύμφωνα με την πολιτική απορρήτου της <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Δεν είναι δυνατή η εύρεση της σελίδας που ζητήσατε." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Πιέστε το κουμπί Return για κλείσιμο." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Δοκιμάστε ξανά αργότερα." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Ελέγξτε την τρέχουσα κατάσταση δικτύου." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Έλεγχος ταυτότητας χρήστη" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Πληροφορίες πιστοποιητικού" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Ειδοποίηση web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Απαιτείται έλεγχος ταυτότητας." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Υπάρχουν προβλήματα με το πιστοποιητικό ασφάλειας για αυτήν την τοποθεσία." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Επιτρέπει σε αυτήν την τοποθεσία web να εμφανίζει ειδοποιήσεις." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Απομνημόνευση προτίμησης." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Όνομα χρήστη" + +msgid "COM_SID_PASSWORD" +msgstr "Κωδικός πρόσβ." + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Σύνδεση" + +msgid "COM_SID_CANCEL" +msgstr "Ακύρωση" + +msgid "COM_SID_ALLOW" +msgstr "Να επ." + +msgid "COM_SID_DENY" +msgstr "Απόρ/ψη" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Πιέστε παρατεταμένα το κουμπί <> για να αναζητήσετε κάτι." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ο ήχος θα σταλεί στην <> για την ενεργοποίηση της υπηρεσίας αναγνώρισης ομιλίας σύμφωνα με την πολιτική απορρήτου της <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Δεν είναι δυνατή η εύρεση της σελίδας που ζητήσατε." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Πατήστε το κουμπί επιστροφής για κλείσιμο." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Δοκιμάστε ξανά αργότερα." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Ελέγξτε την τρέχουσα κατάσταση δικτύου." + +msgid "COM_SID_ERROR_CODE" msgstr "Κωδικός σφάλματος" \ No newline at end of file diff --git a/wrt/resources/tv_locales/en_GB.po b/wrt/resources/tv_locales/en_GB.po index a0c6f29..4c73cc5 100755 --- a/wrt/resources/tv_locales/en_GB.po +++ b/wrt/resources/tv_locales/en_GB.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "User Authentication" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Certificate info" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web notifications" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Authentication required." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "There are problems with the security certificate for this site." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Allows this website to show notifications." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Remember preference." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Username" - -msgid "COM_SID_PASSWORD" -msgstr "Password" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Cancel" - -msgid "COM_SID_ALLOW" -msgstr "Allow" - -msgid "COM_SID_DENY" -msgstr "Deny" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Press and hold the <> button to search for something." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Your audio will be sent to <> in order to use its speech recognition service in accordance with <>'s privacy policy." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Unable to find the page you requested." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Press the Return button to close." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Please try again later." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Check the current network status." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "User Authentication" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Certificate info" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web notifications" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Authentication required." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "There are problems with the security certificate for this site." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Allows this website to show notifications." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Remember preference." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Username" + +msgid "COM_SID_PASSWORD" +msgstr "Password" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Cancel" + +msgid "COM_SID_ALLOW" +msgstr "Allow" + +msgid "COM_SID_DENY" +msgstr "Deny" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Press and hold the <> button to search for something." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Your audio will be sent to <> in order to use its speech recognition service in accordance with <>'s privacy policy." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Unable to find the page you requested." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Press the Return button to close." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Please try again later." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Check the current network status." + +msgid "COM_SID_ERROR_CODE" msgstr "Error code" \ No newline at end of file diff --git a/wrt/resources/tv_locales/en_US.po b/wrt/resources/tv_locales/en_US.po index f452156..38e0afd 100755 --- a/wrt/resources/tv_locales/en_US.po +++ b/wrt/resources/tv_locales/en_US.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "User Authentication" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Certificate info" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web notification" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Authentication required." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "There are problems with the security certificate for this site." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Allows this website to show notifications" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Remember preference." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "User Name" - -msgid "COM_SID_PASSWORD" -msgstr "Password" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Cancel" - -msgid "COM_SID_ALLOW" -msgstr "Allow" - -msgid "COM_SID_DENY" -msgstr "Deny" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Press and hold the <> button to search for something." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Your audio will be sent to <> to enable its speech recognition service in accordance with <>'s privacy policy." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Unable to find the page you requested." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Press the Return button to close." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Please try again later." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Check the current network status." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "User Authentication" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Certificate info" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web notification" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Authentication required." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "There are problems with the security certificate for this site." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Allows this website to show notifications" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Remember preference." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "User Name" + +msgid "COM_SID_PASSWORD" +msgstr "Password" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Cancel" + +msgid "COM_SID_ALLOW" +msgstr "Allow" + +msgid "COM_SID_DENY" +msgstr "Deny" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Press and hold the <> button to search for something." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Your audio will be sent to <> to enable its speech recognition service in accordance with <>'s privacy policy." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Unable to find the page you requested." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Press the return button to close." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Please try again later." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Check the current network status." + +msgid "COM_SID_ERROR_CODE" msgstr "Error code" \ No newline at end of file diff --git a/wrt/resources/tv_locales/es_ES.po b/wrt/resources/tv_locales/es_ES.po index 6400096..3e9a0ce 100755 --- a/wrt/resources/tv_locales/es_ES.po +++ b/wrt/resources/tv_locales/es_ES.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autentic. de usuario" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Información del certificado" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notificación web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Se requiere autenticación." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Se han detectado problemas con el certificado de seguridad de este sitio web." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Permite que este sitio web muestre notificaciones." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Recordar preferencias." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nombre de usuario" - -msgid "COM_SID_PASSWORD" -msgstr "Contraseña" - -msgid "COM_SID_OK" -msgstr "Aceptar" - -msgid "SID_LOGIN" -msgstr "Inicio de sesión" - -msgid "COM_SID_CANCEL" -msgstr "Cancelar" - -msgid "COM_SID_ALLOW" -msgstr "Permitir" - -msgid "COM_SID_DENY" -msgstr "Denegar" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Mantenga pulsado el botón <> para buscar algo." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Su audio se enviará a <> para usar su servicio de reconocimiento de voz de acuerdo con la política de privacidad de <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "No se puede encontrar la página solicitada." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Pulse el botón Return para cerrar." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Vuelva a intentarlo más tarde." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Compruebe el estado actual de la red." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autentic. de usuario" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Información del certificado" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notificación web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Se requiere autenticación." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Se han detectado problemas con el certificado de seguridad de este sitio web." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Permite que este sitio web muestre notificaciones." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Recordar preferencias." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nombre de usuario" + +msgid "COM_SID_PASSWORD" +msgstr "Contraseña" + +msgid "COM_SID_OK" +msgstr "Aceptar" + +msgid "SID_LOGIN" +msgstr "Inicio de sesión" + +msgid "COM_SID_CANCEL" +msgstr "Cancelar" + +msgid "COM_SID_ALLOW" +msgstr "Permitir" + +msgid "COM_SID_DENY" +msgstr "Denegar" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Mantenga pulsado el botón <> para buscar algo." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Su audio se enviará a <> para usar su servicio de reconocimiento de voz de acuerdo con la política de privacidad de <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "No se puede encontrar la página solicitada." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pulse el botón Volver para cerrar." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Vuelva a intentarlo más tarde." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Compruebe el estado actual de la red." + +msgid "COM_SID_ERROR_CODE" msgstr "Código de error" \ No newline at end of file diff --git a/wrt/resources/tv_locales/es_MX.po b/wrt/resources/tv_locales/es_MX.po index bf2062a..6e0fc48 100755 --- a/wrt/resources/tv_locales/es_MX.po +++ b/wrt/resources/tv_locales/es_MX.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autenticación del usuario" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Información del certificado" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notificación web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Se requiere autenticación." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Ocurrieron problemas con el certificado de seguridad de este sitio." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Le permite a este sitio web mostrar notificaciones." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Recordar preferencia." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nombre de usuario" - -msgid "COM_SID_PASSWORD" -msgstr "Contraseña" - -msgid "COM_SID_OK" -msgstr "Aceptar" - -msgid "SID_LOGIN" -msgstr "Inicio de sesión" - -msgid "COM_SID_CANCEL" -msgstr "Cancelar" - -msgid "COM_SID_ALLOW" -msgstr "Permitir" - -msgid "COM_SID_DENY" -msgstr "Negar" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Pulse y sostenga el botón <> para buscar algo." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Se enviará su audio a <> para habilitar el servicio de reconocimiento de voz según la política de privacidad de <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "No se puede encontrar la página que solicitó." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Presione el botón Return para cerrar." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Vuelva a intentarlo más tarde." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Revise el estado de red actual." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autenticación del usuario" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Información del certificado" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notificación web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Se requiere autenticación." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Ocurrieron problemas con el certificado de seguridad de este sitio." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Le permite a este sitio web mostrar notificaciones." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Recordar preferencia." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nombre de usuario" + +msgid "COM_SID_PASSWORD" +msgstr "Contraseña" + +msgid "COM_SID_OK" +msgstr "Aceptar" + +msgid "SID_LOGIN" +msgstr "Inicio de sesión" + +msgid "COM_SID_CANCEL" +msgstr "Cancelar" + +msgid "COM_SID_ALLOW" +msgstr "Permitir" + +msgid "COM_SID_DENY" +msgstr "Negar" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Pulse y sostenga el botón <> para buscar algo." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Se enviará su audio a <> para habilitar el servicio de reconocimiento de voz según la política de privacidad de <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "No se puede encontrar la página que solicitó." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Presione el botón Regresar para cerrar." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Vuelva a intentarlo más tarde." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Revise el estado de red actual." + +msgid "COM_SID_ERROR_CODE" msgstr "Código de error" \ No newline at end of file diff --git a/wrt/resources/tv_locales/et_EE.po b/wrt/resources/tv_locales/et_EE.po index cdf09cf..e5431f3 100755 --- a/wrt/resources/tv_locales/et_EE.po +++ b/wrt/resources/tv_locales/et_EE.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Kasutaja autentimine" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Serdi teave" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Veebiteavitus" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Nõutav on autentimine." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Selle saidi turvaserdiga on probleeme." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Lubab sellel veebisaidil teavitusi näidata." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Jäta eelistus meelde." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Kasutajanimi" - -msgid "COM_SID_PASSWORD" -msgstr "Parool" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Logi sis." - -msgid "COM_SID_CANCEL" -msgstr "Tühista" - -msgid "COM_SID_ALLOW" -msgstr "Luba" - -msgid "COM_SID_DENY" -msgstr "Keela" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Millegi otsimiseks vajutage ja hoidke all nuppu <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Teie heli saadetakse sisupakkujale <>, et lubada selle häältuvastuse teenus kooskõlas <> privaatsuspoliitikaga." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Teie nõutud lehte ei õnnestu leida." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Sulgemiseks vajutage nuppu Return." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Proovige hiljem uuesti." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Vaadake praegust võrguolekut." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Kasutaja autentimine" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Serdi teave" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Veebiteavitus" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Nõutav on autentimine." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Selle saidi turvaserdiga on probleeme." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Lubab sellel veebisaidil teavitusi näidata." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Jäta eelistus meelde." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Kasutajanimi" + +msgid "COM_SID_PASSWORD" +msgstr "Parool" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Logi sis." + +msgid "COM_SID_CANCEL" +msgstr "Tühista" + +msgid "COM_SID_ALLOW" +msgstr "Luba" + +msgid "COM_SID_DENY" +msgstr "Keela" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Millegi otsimiseks vajutage ja hoidke all nuppu <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Teie heli saadetakse sisupakkujale <>, et lubada selle häältuvastuse teenus kooskõlas <> privaatsuspoliitikaga." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Teie nõutud lehte ei õnnestu leida." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Sulgemiseks vajutage nuppu „Naase“." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Proovige hiljem uuesti." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Vaadake praegust võrguolekut." + +msgid "COM_SID_ERROR_CODE" msgstr "Veakood" \ No newline at end of file diff --git a/wrt/resources/tv_locales/fa_IR.po b/wrt/resources/tv_locales/fa_IR.po index c92d733..1859169 100755 --- a/wrt/resources/tv_locales/fa_IR.po +++ b/wrt/resources/tv_locales/fa_IR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "تأیید اعتبار کاربر" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "اطلاعات گواهی" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "اعلان اینترنتی" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "تأیید اعتبار لازم است." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "مشکلاتی در مجوز امنیتی این سایت وجود دارد." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "به این وب سایت اجازه می دهد اعلان ها را نشان دهد." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "موارد برگزیده را به یاد داشته باشید." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "نام کاربری" - -msgid "COM_SID_PASSWORD" -msgstr "رمز عبور" - -msgid "COM_SID_OK" -msgstr "قبول" - -msgid "SID_LOGIN" -msgstr "ورود" - -msgid "COM_SID_CANCEL" -msgstr "لغو" - -msgid "COM_SID_ALLOW" -msgstr "امكان" - -msgid "COM_SID_DENY" -msgstr "امتناع" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "برای جستجوی چیزی، دکمه <> را فشار دهید و نگهدارید." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "برای فعال کردن سرویس تشخیص گفتار طبق حریم شخصی <>، صدای شما به <> ارسال می شود." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "صفحه درخواستی شما را نمی‌یابیم." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "برای بستن ، دکمه Return را فشار دهید." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "لطفاً در فرصت دیگری دوباره سعی کنید." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "وضعیت فعلی شبکه را بررسی کنید." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "تأیید اعتبار کاربر" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "اطلاعات گواهی" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "اعلان اینترنتی" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "تأیید اعتبار لازم است." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "مشکلاتی در مجوز امنیتی این سایت وجود دارد." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "به این وب سایت اجازه می دهد اعلان ها را نشان دهد." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "موارد برگزیده را به یاد داشته باشید." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "نام کاربری" + +msgid "COM_SID_PASSWORD" +msgstr "رمز عبور" + +msgid "COM_SID_OK" +msgstr "قبول" + +msgid "SID_LOGIN" +msgstr "ورود" + +msgid "COM_SID_CANCEL" +msgstr "لغو" + +msgid "COM_SID_ALLOW" +msgstr "امكان" + +msgid "COM_SID_DENY" +msgstr "امتناع" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "برای جستجوی چیزی، دکمه <> را فشار دهید و نگهدارید." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "برای فعال کردن سرویس تشخیص گفتار طبق حریم شخصی <>، صدای شما به <> ارسال می شود." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "صفحه درخواستی شما را نمی‌یابیم." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "برای بستن، دکمه بازگشت را فشار دهید." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "لطفاً در فرصت دیگری دوباره سعی کنید." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "وضعیت فعلی شبکه را بررسی کنید." + +msgid "COM_SID_ERROR_CODE" msgstr "کد خطا" \ No newline at end of file diff --git a/wrt/resources/tv_locales/fi_FI.po b/wrt/resources/tv_locales/fi_FI.po index 0d534f3..9994f59 100755 --- a/wrt/resources/tv_locales/fi_FI.po +++ b/wrt/resources/tv_locales/fi_FI.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Käyttäjän todennus" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Varmenteen tiedot" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Verkkoilmoitus" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Todennus vaaditaan." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Tämän sivuston suojausvarmenteessa ilmeni ongelmia." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Antaa tämän sivuston näyttää ilmoituksia." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Muista asetus." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Käyttäjänimi" - -msgid "COM_SID_PASSWORD" -msgstr "Salasana" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Kirjaudu" - -msgid "COM_SID_CANCEL" -msgstr "Peruuta" - -msgid "COM_SID_ALLOW" -msgstr "Salli" - -msgid "COM_SID_DENY" -msgstr "Estä" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Jos haluat hakea jotakin, paina painiketta <> pitkään." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ääninauhoitteesi lähetetään palveluntarjoajalle <>, jotta sen puheentunnistuspalvelu voidaan ottaa käyttöön palveluntarjoajan <> tietosuojakäytännön mukaisesti." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Pyytämääsi sivua ei löydy." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Sulje painamalla Return-painiketta." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Yritä myöhemmin uudelleen." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Tarkista verkon nykyinen tila." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Käyttäjän todennus" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Varmenteen tiedot" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Verkkoilmoitus" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Todennus vaaditaan." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Tämän sivuston suojausvarmenteessa ilmeni ongelmia." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Antaa tämän sivuston näyttää ilmoituksia." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Muista asetus." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Käyttäjänimi" + +msgid "COM_SID_PASSWORD" +msgstr "Salasana" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Kirjaudu" + +msgid "COM_SID_CANCEL" +msgstr "Peruuta" + +msgid "COM_SID_ALLOW" +msgstr "Salli" + +msgid "COM_SID_DENY" +msgstr "Estä" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Jos haluat hakea jotakin, paina painiketta <> pitkään." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ääninauhoitteesi lähetetään palveluntarjoajalle <>, jotta sen puheentunnistuspalvelu voidaan ottaa käyttöön palveluntarjoajan <> tietosuojakäytännön mukaisesti." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Pyytämääsi sivua ei löydy." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Sulje painamalla Return-painiketta." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Yritä myöhemmin uudelleen." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Tarkista verkon nykyinen tila." + +msgid "COM_SID_ERROR_CODE" msgstr "Virhekoodi" \ No newline at end of file diff --git a/wrt/resources/tv_locales/fr_CA.po b/wrt/resources/tv_locales/fr_CA.po index e833c35..2754372 100755 --- a/wrt/resources/tv_locales/fr_CA.po +++ b/wrt/resources/tv_locales/fr_CA.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Authentification de l’utilisateur" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Détails du certificat" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notification Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Authentification requise." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Des problèmes sont survenus quant au certificat de sécurité de ce site Web." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Autorise ce site Web à afficher les notifications." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Enregistrer les préférences." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nom d’utilisateur" - -msgid "COM_SID_PASSWORD" -msgstr "Mot de passe" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Ouvrir session" - -msgid "COM_SID_CANCEL" -msgstr "Annuler" - -msgid "COM_SID_ALLOW" -msgstr "Permet." - -msgid "COM_SID_DENY" -msgstr "Bloquer" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Maintenez enfoncée la touche <> pour chercher quelque chose." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Votre fichier audio sera envoyé à <> pour activer son service de reconnaissance vocale conformément à la politique de confidentialité de <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "La page demandée est introuvable." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Appuyez sur le bouton Return pour fermer." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Réessayez plus tard." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Vérifiez l'état actuel du réseau." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Authentification de l’utilisateur" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Détails du certificat" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notification Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Authentification requise." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Des problèmes sont survenus quant au certificat de sécurité de ce site Web." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Autorise ce site Web à afficher les notifications." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Enregistrer les préférences." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nom d’utilisateur" + +msgid "COM_SID_PASSWORD" +msgstr "Mot de passe" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Ouvrir session" + +msgid "COM_SID_CANCEL" +msgstr "Annuler" + +msgid "COM_SID_ALLOW" +msgstr "Permet." + +msgid "COM_SID_DENY" +msgstr "Bloquer" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Maintenez enfoncée la touche <> pour chercher quelque chose." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Votre fichier audio sera envoyé à <> pour activer son service de reconnaissance vocale conformément à la politique de confidentialité de <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "La page demandée est introuvable." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pour fermer, appuyez sur le bouton Retour." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Réessayez plus tard." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Vérifiez l'état actuel du réseau." + +msgid "COM_SID_ERROR_CODE" msgstr "Code d’erreur" \ No newline at end of file diff --git a/wrt/resources/tv_locales/fr_FR.po b/wrt/resources/tv_locales/fr_FR.po index 2033216..e7fd042 100755 --- a/wrt/resources/tv_locales/fr_FR.po +++ b/wrt/resources/tv_locales/fr_FR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Authent. utilisateur" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informations sur le certificat" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notification Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Une authentification est requise." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Des problèmes ont été détectés avec le certificat de sécurité de ce site." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Autorisez ce site Web à afficher les notifications." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "La préférence a été enregistrée." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nom utilisateur" - -msgid "COM_SID_PASSWORD" -msgstr "Mot de passe" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Connexion" - -msgid "COM_SID_CANCEL" -msgstr "Annuler" - -msgid "COM_SID_ALLOW" -msgstr "Autor." - -msgid "COM_SID_DENY" -msgstr "Refuser" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Appuyez et maintenez votre doigt appuyé sur le bouton <> pour chercher quelque chose." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Votre audio sera envoyé à <> pour activer son service de reconnaissance de la parole en accord avec la politique de <> relative à la confidentialité." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "La page recherchée est introuvable." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Appuyez sur le bouton Return pour fermer." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Réessayez plus tard." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Vérifiez l'état actuel du réseau." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Authent. utilisateur" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informations sur le certificat" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notification Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Une authentification est requise." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Des problèmes ont été détectés avec le certificat de sécurité de ce site." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Autorisez ce site Web à afficher les notifications." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "La préférence a été enregistrée." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nom utilisateur" + +msgid "COM_SID_PASSWORD" +msgstr "Mot de passe" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Connexion" + +msgid "COM_SID_CANCEL" +msgstr "Annuler" + +msgid "COM_SID_ALLOW" +msgstr "Autor." + +msgid "COM_SID_DENY" +msgstr "Refuser" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Appuyez et maintenez votre doigt appuyé sur le bouton <> pour chercher quelque chose." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Votre audio sera envoyé à <> pour activer son service de reconnaissance de la parole en accord avec la politique de <> relative à la confidentialité." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "La page recherchée est introuvable." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Appuyez sur le bouton Retour pour fermer." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Réessayez plus tard." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Vérifiez l'état actuel du réseau." + +msgid "COM_SID_ERROR_CODE" msgstr "Code d'erreur" \ No newline at end of file diff --git a/wrt/resources/tv_locales/gu_IN.po b/wrt/resources/tv_locales/gu_IN.po index 3de7fef..a42da5d 100755 --- a/wrt/resources/tv_locales/gu_IN.po +++ b/wrt/resources/tv_locales/gu_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "વપરાશકર્તા પ્રમાણીકરણ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "પ્રમાણપત્ર માહિતી" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "વેબ સૂચના" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "પ્રમાણીકરણ આવશ્યક છે." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "તેમાં આ વેબસાઇટના સુરક્ષા પ્રમાણપત્ર સાથે સમસ્યાઓ છે." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "આ વેબસાઇટને સૂચનાઓ દર્શાવવાની પરવાનગી આપો." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "પસંદગી યાદ રાખો." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "વપરાશકર્તા નામ" - -msgid "COM_SID_PASSWORD" -msgstr "પાસવર્ડ" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "લૉગ-ઇન કરો" - -msgid "COM_SID_CANCEL" -msgstr "રદ કરો" - -msgid "COM_SID_ALLOW" -msgstr "પરવાનગી આપો" - -msgid "COM_SID_DENY" -msgstr "અસ્વીકારો" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "કંઈક શોધવા માટે <> બટન દબાવો અને હોલ્ડ કરો." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "તમારો ઑડિયો <>ને મોકલવામાં આવશે જેથી <>ની ગોપનીયતા નીતિ અનુસાર તેની વાણી ઓળખ સેવા સક્ષમ ચાલુ કરી શકાય." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "તમે વિનંતી કરેલ પાનું શોધવામાં અસમર્થ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "બંધ કરવા માટે Return બટન દબાવો." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "કૃપયા પછી ફરીથી પ્રયાસ કરો." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "હાલની નેટવર્ક સ્થિતિ તપાસો." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "વપરાશકર્તા પ્રમાણીકરણ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "પ્રમાણપત્ર માહિતી" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "વેબ સૂચના" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "પ્રમાણીકરણ આવશ્યક છે." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "તેમાં આ વેબસાઇટના સુરક્ષા પ્રમાણપત્ર સાથે સમસ્યાઓ છે." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "આ વેબસાઇટને સૂચનાઓ દર્શાવવાની પરવાનગી આપો." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "પસંદગી યાદ રાખો." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "વપરાશકર્તા નામ" + +msgid "COM_SID_PASSWORD" +msgstr "પાસવર્ડ" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "લૉગ-ઇન કરો" + +msgid "COM_SID_CANCEL" +msgstr "રદ કરો" + +msgid "COM_SID_ALLOW" +msgstr "પરવાનગી આપો" + +msgid "COM_SID_DENY" +msgstr "અસ્વીકારો" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "કંઈક શોધવા માટે <> બટન દબાવો અને હોલ્ડ કરો." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "તમારો ઑડિયો <>ને મોકલવામાં આવશે જેથી <>ની ગોપનીયતા નીતિ અનુસાર તેની વાણી ઓળખ સેવા સક્ષમ ચાલુ કરી શકાય." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "તમે વિનંતી કરેલ પાનું શોધવામાં અસમર્થ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "બંધ કરવા માટે રિટર્ન બટન દબાવો." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "કૃપયા પછી ફરીથી પ્રયાસ કરો." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "હાલની નેટવર્ક સ્થિતિ તપાસો." + +msgid "COM_SID_ERROR_CODE" msgstr "ભૂલ કોડ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ha_NG.po b/wrt/resources/tv_locales/ha_NG.po index 8b6a3f9..1055419 100755 --- a/wrt/resources/tv_locales/ha_NG.po +++ b/wrt/resources/tv_locales/ha_NG.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Gaskata mai Amfani" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Bayanin shahada" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Sanarwar yanar gizo" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "An buƙaci gaskatawa." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Akwai matsaloli tare da shahadar tsaro ta wannan shafi." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Ƙyale wannan shafin yanar gizo ya nuna sanarwa." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Tuna fifiko." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Sunan Mai Amfani" - -msgid "COM_SID_PASSWORD" -msgstr "Mabuɗi" - -msgid "COM_SID_OK" -msgstr "Ya yi" - -msgid "SID_LOGIN" -msgstr "Sa hannu" - -msgid "COM_SID_CANCEL" -msgstr "Fasawa" - -msgid "COM_SID_ALLOW" -msgstr "Ƙyale" - -msgid "COM_SID_DENY" -msgstr "Musu" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "A danna a kuma riƙe maɓallin <> don neman wani abu." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Za a aika maganarka zuwa <> don ƙyale sabis na gane muryarsa bisa la'akari da dokar tsare sirri ta <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "An gagara samun shafin da ka buƙata." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Danna maɓallin Return don rufewa." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Sake gwadawa daga baya." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Bincika matsayin hanyar sadarwa na yanzu." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Gaskata mai Amfani" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Bayanin shahada" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Sanarwar yanar gizo" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "An buƙaci gaskatawa." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Akwai matsaloli tare da shahadar tsaro ta wannan shafi." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Ƙyale wannan shafin yanar gizo ya nuna sanarwa." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Tuna fifiko." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Sunan Mai Amfani" + +msgid "COM_SID_PASSWORD" +msgstr "Mabuɗi" + +msgid "COM_SID_OK" +msgstr "Ya yi" + +msgid "SID_LOGIN" +msgstr "Sa hannu" + +msgid "COM_SID_CANCEL" +msgstr "Fasawa" + +msgid "COM_SID_ALLOW" +msgstr "Ƙyale" + +msgid "COM_SID_DENY" +msgstr "Musu" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "A danna a kuma riƙe maɓallin <> don neman wani abu." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Za a aika maganarka zuwa <> don ƙyale sabis na gane muryarsa bisa la'akari da dokar tsare sirri ta <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "An gagara samun shafin da ka buƙata." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Danna maɓallin Koma don rufewa." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Sake gwadawa daga baya." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Bincika matsayin hanyar sadarwa na yanzu." + +msgid "COM_SID_ERROR_CODE" msgstr "Lambar kuskure" \ No newline at end of file diff --git a/wrt/resources/tv_locales/he_IL.po b/wrt/resources/tv_locales/he_IL.po index b3c0f0e..d0576b2 100755 --- a/wrt/resources/tv_locales/he_IL.po +++ b/wrt/resources/tv_locales/he_IL.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "אימות משתמש" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "פרטי אישור" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "הודעת רשת" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "נדרש אימות." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "קיימות בעיות עם אישור האבטחה עבור אתר זה." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "מאפשר לאתר אינטרנט זה להציג הודעות." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "זכור העדפה." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "שם משתמש" - -msgid "COM_SID_PASSWORD" -msgstr "סיסמה" - -msgid "COM_SID_OK" -msgstr "אישור" - -msgid "SID_LOGIN" -msgstr "היכנס" - -msgid "COM_SID_CANCEL" -msgstr "ביטול" - -msgid "COM_SID_ALLOW" -msgstr "אפשר" - -msgid "COM_SID_DENY" -msgstr "דחה" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "לחץ ממושכות על הלחצן <> כדי לחפש דבר מה." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "השמע שלך יישלח אל <> כדי להפעיל את שירות הזיהוי הקולי שלו בהתאם למדיניות הפרטיות של <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "לא ניתן למצוא את הדף שביקשת." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "לחץ על הלחצן Return כדי לסגור" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "אנא נסה שוב מאוחר יותר." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "בדוק את מצב הרשת הנוכחי." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "אימות משתמש" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "פרטי אישור" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "הודעת רשת" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "נדרש אימות." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "קיימות בעיות עם אישור האבטחה עבור אתר זה." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "מאפשר לאתר אינטרנט זה להציג הודעות." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "זכור העדפה." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "שם משתמש" + +msgid "COM_SID_PASSWORD" +msgstr "סיסמה" + +msgid "COM_SID_OK" +msgstr "אישור" + +msgid "SID_LOGIN" +msgstr "היכנס" + +msgid "COM_SID_CANCEL" +msgstr "ביטול" + +msgid "COM_SID_ALLOW" +msgstr "אפשר" + +msgid "COM_SID_DENY" +msgstr "דחה" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "לחץ ממושכות על הלחצן <> כדי לחפש דבר מה." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "השמע שלך יישלח אל <> כדי להפעיל את שירות הזיהוי הקולי שלו בהתאם למדיניות הפרטיות של <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "לא ניתן למצוא את הדף שביקשת." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "לחץ על הלחצן 'חזרה' כדי לסגור." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "אנא נסה שוב מאוחר יותר." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "בדוק את מצב הרשת הנוכחי." + +msgid "COM_SID_ERROR_CODE" msgstr "שגיאת משאב" \ No newline at end of file diff --git a/wrt/resources/tv_locales/hi_IN.po b/wrt/resources/tv_locales/hi_IN.po index 15bdc1c..3fbbd9d 100755 --- a/wrt/resources/tv_locales/hi_IN.po +++ b/wrt/resources/tv_locales/hi_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "उपयोगकर्ता प्रमाणीकरण" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "प्रमाणपत्र जानकारी" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब सूचना" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "प्रमाणीकरण आवश्यक." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "इस साइट के सुरक्षा प्रमाण पत्र के साथ समस्याएं हैं." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "इस वेबसाइट को सूचनाएं दिखाने की अनुमति देता है." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "प्राथमिकता याद रखें." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "उपयोगकर्ता नाम" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "ठीक" - -msgid "SID_LOGIN" -msgstr "लॉग इन" - -msgid "COM_SID_CANCEL" -msgstr "रद्द करें" - -msgid "COM_SID_ALLOW" -msgstr "अनुमति" - -msgid "COM_SID_DENY" -msgstr "मना करें" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "कोई चीज़ ढूढ़ने के लिए, <> बटन दबाएं और पकड़े रहें." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "आपका ऑडियो <> को भेजा जाएगा ताकि इसकी आवाज पहचान सेवा को <> की गोपनीयता नीति के अनुसार सक्षम किया जाए." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "आपके द्वारा अनुरोधित पृष्ठ ढूंढ़ने में असमर्थ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बंद करने के लिए Return बटन दबाएं." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "कृपया पुनः प्रयास करें." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "वर्तमान नेटवर्क की स्थिति जांचें." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "उपयोगकर्ता प्रमाणीकरण" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "प्रमाणपत्र जानकारी" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब सूचना" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "प्रमाणीकरण आवश्यक." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "इस साइट के सुरक्षा प्रमाण पत्र के साथ समस्याएं हैं." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "इस वेबसाइट को सूचनाएं दिखाने की अनुमति देता है." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "प्राथमिकता याद रखें." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "उपयोगकर्ता नाम" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "ठीक" + +msgid "SID_LOGIN" +msgstr "लॉग इन" + +msgid "COM_SID_CANCEL" +msgstr "रद्द करें" + +msgid "COM_SID_ALLOW" +msgstr "अनुमति" + +msgid "COM_SID_DENY" +msgstr "मना करें" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "कोई चीज़ ढूढ़ने के लिए, <> बटन दबाएं और पकड़े रहें." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "आपका ऑडियो <> को भेजा जाएगा ताकि इसकी आवाज पहचान सेवा को <> की गोपनीयता नीति के अनुसार सक्षम किया जाए." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "आपके द्वारा अनुरोधित पृष्ठ ढूंढ़ने में असमर्थ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "बंद करने के लिए वापस बटन दबाएं." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "कृपया पुनः प्रयास करें." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "वर्तमान नेटवर्क की स्थिति जांचें." + +msgid "COM_SID_ERROR_CODE" msgstr "त्रुटि कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/hr_HR.po b/wrt/resources/tv_locales/hr_HR.po index c494168..d329b26 100755 --- a/wrt/resources/tv_locales/hr_HR.po +++ b/wrt/resources/tv_locales/hr_HR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Provjera autentičnosti korisnika" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informacije o certifikatu" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Mrežna obavijest" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Zahtijeva se provjera autentičnosti." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Postoje problemi sa sigurnosnim certifikatom za ovu stranicu." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Dopusti ovoj mrežnoj stranici prikaz obavijesti." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Upamtite preference." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Korisničko ime" - -msgid "COM_SID_PASSWORD" -msgstr "Lozinka" - -msgid "COM_SID_OK" -msgstr "U redu" - -msgid "SID_LOGIN" -msgstr "Prijava" - -msgid "COM_SID_CANCEL" -msgstr "Odustani" - -msgid "COM_SID_ALLOW" -msgstr "Dopusti" - -msgid "COM_SID_DENY" -msgstr "Odbij" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Za pretraživanje pritisnite i držite gumb <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Vaš će zvučni zapis biti poslan tvrtki <> kako bi se omogućila usluga prepoznavanja glasa u skladu s pravilima privatnosti tvrtke <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Nije moguće pronaći stranicu koju ste zatražili." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Pritisnite gumb Return za zatvaranje." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Pokušajte ponovno kasnije." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Provjerite trenutačno stanje mreže." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Provjera autentičnosti korisnika" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informacije o certifikatu" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Mrežna obavijest" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Zahtijeva se provjera autentičnosti." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Postoje problemi sa sigurnosnim certifikatom za ovu stranicu." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Dopusti ovoj mrežnoj stranici prikaz obavijesti." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Upamtite preference." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Korisničko ime" + +msgid "COM_SID_PASSWORD" +msgstr "Lozinka" + +msgid "COM_SID_OK" +msgstr "U redu" + +msgid "SID_LOGIN" +msgstr "Prijava" + +msgid "COM_SID_CANCEL" +msgstr "Odustani" + +msgid "COM_SID_ALLOW" +msgstr "Dopusti" + +msgid "COM_SID_DENY" +msgstr "Odbij" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Za pretraživanje pritisnite i držite gumb <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Vaš će zvučni zapis biti poslan tvrtki <> kako bi se omogućila usluga prepoznavanja glasa u skladu s pravilima privatnosti tvrtke <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Nije moguće pronaći stranicu koju ste zatražili." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pritisnite gumb Povratak za zatvaranje." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Pokušajte ponovno kasnije." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Provjerite trenutačno stanje mreže." + +msgid "COM_SID_ERROR_CODE" msgstr "Pogreška kôda" \ No newline at end of file diff --git a/wrt/resources/tv_locales/hu_HU.po b/wrt/resources/tv_locales/hu_HU.po index 430b445..8a4dfb4 100755 --- a/wrt/resources/tv_locales/hu_HU.po +++ b/wrt/resources/tv_locales/hu_HU.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Felhasználó hitelesítése" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Tanúsítvány adatai" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webes értesítés" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Hitelesítés szükséges." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Probléma merült fel a webhely biztonsági tanúsítványával kapcsolatban." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Értesítések megjelenítésének engedélyezése a webhely számára." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Beállítás megjegyzése." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Felhasználónév" - -msgid "COM_SID_PASSWORD" -msgstr "Jelszó" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Bejel." - -msgid "COM_SID_CANCEL" -msgstr "Mégse" - -msgid "COM_SID_ALLOW" -msgstr "Enged." - -msgid "COM_SID_DENY" -msgstr "Elutas." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "A kereséshez tartsa nyomva a <> gombot!" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "A(z) <> adatvédelmi tájékoztatójában foglaltaknak megfelelően a hangjáról készült felvételt a rendszer elküldi a(z) <> részére hangfelismerési szolgáltatás igénybevétele céljából." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "A kért oldal nem található." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "A bezáráshoz nyomja meg a Return gombot." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Próbálja meg később." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Az aktuális hálózat állapotának ellenőrzése." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Felhasználó hitelesítése" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Tanúsítvány adatai" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webes értesítés" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Hitelesítés szükséges." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Probléma merült fel a webhely biztonsági tanúsítványával kapcsolatban." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Értesítések megjelenítésének engedélyezése a webhely számára." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Beállítás megjegyzése." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Felhasználónév" + +msgid "COM_SID_PASSWORD" +msgstr "Jelszó" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Bejel." + +msgid "COM_SID_CANCEL" +msgstr "Mégse" + +msgid "COM_SID_ALLOW" +msgstr "Enged." + +msgid "COM_SID_DENY" +msgstr "Elutas." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "A kereséshez tartsa nyomva a <> gombot!" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "A(z) <> adatvédelmi tájékoztatójában foglaltaknak megfelelően a hangjáról készült felvételt a rendszer elküldi a(z) <> részére hangfelismerési szolgáltatás igénybevétele céljából." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "A kért oldal nem található." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Nyomja meg a Vissza gombot a bezáráshoz." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Próbálja meg később." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Az aktuális hálózat állapotának ellenőrzése." + +msgid "COM_SID_ERROR_CODE" msgstr "Hibakód" \ No newline at end of file diff --git a/wrt/resources/tv_locales/hy_AM.po b/wrt/resources/tv_locales/hy_AM.po index c08ef53..4930858 100755 --- a/wrt/resources/tv_locales/hy_AM.po +++ b/wrt/resources/tv_locales/hy_AM.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Օգտվողի իսկորոշում" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Վկայագրի տվյալներ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Վեբ ծանուցում" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Պահանջվում է իսկորոշում:" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Այս կայքի անվտանգության վկայականի հետ կապված խնդիրներ կան:" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Թույլ է տալիս այս վեբկայքին ցուցադրել ծանուցումները:" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Հիշել նախընտրանքը:" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Օգտվողի անուն" - -msgid "COM_SID_PASSWORD" -msgstr "Գաղտնաբառ" - -msgid "COM_SID_OK" -msgstr "Լավ" - -msgid "SID_LOGIN" -msgstr "Մուտքգործում" - -msgid "COM_SID_CANCEL" -msgstr "Չեղարկել" - -msgid "COM_SID_ALLOW" -msgstr "Թույլատրլ" - -msgid "COM_SID_DENY" -msgstr "Մերժել" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Ինչ-որ բան որոնելու համար սեղմեք և պահեք <> կոճակը:" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ձեր ձայնն ուղարկվելու է <>՝ խոսքի ճանաչման ծառայությունը <>-ի գաղտնիության քաղաքականությանը համապատասխան միացնելու համար:" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Չհաջողվեց գտնել ձեր ուզած էջը։" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Փակելու համար սեղմեք Return կոճակը:" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Նորից փորձեք ավելի ուշ:" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Ստուգեք ընթացիկ ցանցի կարգավիճակը:" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Օգտվողի իսկորոշում" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Վկայագրի տվյալներ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Վեբ ծանուցում" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Պահանջվում է իսկորոշում:" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Այս կայքի անվտանգության վկայականի հետ կապված խնդիրներ կան:" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Թույլ է տալիս այս վեբկայքին ցուցադրել ծանուցումները:" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Հիշել նախընտրանքը:" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Օգտվողի անուն" + +msgid "COM_SID_PASSWORD" +msgstr "Գաղտնաբառ" + +msgid "COM_SID_OK" +msgstr "Լավ" + +msgid "SID_LOGIN" +msgstr "Մուտքգործում" + +msgid "COM_SID_CANCEL" +msgstr "Չեղարկել" + +msgid "COM_SID_ALLOW" +msgstr "Թույլատրլ" + +msgid "COM_SID_DENY" +msgstr "Մերժել" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Ինչ-որ բան որոնելու համար սեղմեք և պահեք <> կոճակը:" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ձեր ձայնն ուղարկվելու է <>՝ խոսքի ճանաչման ծառայությունը <>-ի գաղտնիության քաղաքականությանը համապատասխան միացնելու համար:" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Չհաջողվեց գտնել ձեր ուզած էջը։" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Փակելու համար սեղմեք Վերադառնալ կոճակը։" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Նորից փորձեք ավելի ուշ:" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Ստուգեք ընթացիկ ցանցի կարգավիճակը:" + +msgid "COM_SID_ERROR_CODE" msgstr "Սխալի կոդ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/id_ID.po b/wrt/resources/tv_locales/id_ID.po index 90c030b..d9e2d1e 100755 --- a/wrt/resources/tv_locales/id_ID.po +++ b/wrt/resources/tv_locales/id_ID.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Otentikasi Pengguna" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Info sertifikat" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Pemberitahuan web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Memerlukan otentikasi." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Terjadi masalah dengan sertifikat keamanan untuk situs ini." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Izinkan situs web ini untuk menampilkan pemberitahuan." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Ingat Preferensi." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nama Pengguna" - -msgid "COM_SID_PASSWORD" -msgstr "Sandi" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Batal" - -msgid "COM_SID_ALLOW" -msgstr "Boleh" - -msgid "COM_SID_DENY" -msgstr "Tolak" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Tekan terus tombol <> untuk mencari sesuatu." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Audio Anda akan dikirim ke <> untuk memberikan layanan pengenalan ucapannya sesuai dengan kebijakan privasi <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Tidak dapat menemukan halaman yang diminta." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Tekan tombol Return untuk menutup." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Coba lagi nanti." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Periksa status jaringan saat ini." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Otentikasi Pengguna" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Info sertifikat" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Pemberitahuan web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Memerlukan otentikasi." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Terjadi masalah dengan sertifikat keamanan untuk situs ini." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Izinkan situs web ini untuk menampilkan pemberitahuan." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Ingat Preferensi." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nama Pengguna" + +msgid "COM_SID_PASSWORD" +msgstr "Sandi" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Batal" + +msgid "COM_SID_ALLOW" +msgstr "Boleh" + +msgid "COM_SID_DENY" +msgstr "Tolak" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Tekan terus tombol <> untuk mencari sesuatu." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Audio Anda akan dikirim ke <> untuk memberikan layanan pengenalan ucapannya sesuai dengan kebijakan privasi <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Tidak dapat menemukan halaman yang diminta." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Tekan tombol Kembali untuk menutup." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Coba lagi nanti." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Periksa status jaringan saat ini." + +msgid "COM_SID_ERROR_CODE" msgstr "Kode kesalahan" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ig_NG.po b/wrt/resources/tv_locales/ig_NG.po index 91197d8..c5d182a 100755 --- a/wrt/resources/tv_locales/ig_NG.po +++ b/wrt/resources/tv_locales/ig_NG.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Nnyocha Onye Ọrụ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Ozi asambodo" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Amamọkwa weebụ" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Achọrọ nyocha." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Enwere nsogbu na asambodo nche ahụ maka saịtị a." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Hapụ weebụsaịtị a ka o gosi amamọkwa." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Cheta mmasị." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Aha Njirimara" - -msgid "COM_SID_PASSWORD" -msgstr "Paswọọdụ" - -msgid "COM_SID_OK" -msgstr "ỌDM." - -msgid "SID_LOGIN" -msgstr "ịbata" - -msgid "COM_SID_CANCEL" -msgstr "Kagbuo" - -msgid "COM_SID_ALLOW" -msgstr "Kwere" - -msgid "COM_SID_DENY" -msgstr "Jụ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Pịa ma jide bọtịnụ <> iji chọọ ihe." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "A ga-eziga ọdịyo gị na <> iji gbanye ọrụ nchọpụta okwu n'usoro nke iwu nzuzo nke <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Enwenwughi ike ịchọta ibe ahụ ị rịọrọ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Pịa bọtịnụ Return iji mechie." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Biko nwaa ọzọ ma emechaa." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Lelee ọkwa netwọk dị ugbu a." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Nnyocha Onye Ọrụ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Ozi asambodo" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Amamọkwa weebụ" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Achọrọ nyocha." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Enwere nsogbu na asambodo nche ahụ maka saịtị a." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Hapụ weebụsaịtị a ka o gosi amamọkwa." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Cheta mmasị." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Aha Njirimara" + +msgid "COM_SID_PASSWORD" +msgstr "Paswọọdụ" + +msgid "COM_SID_OK" +msgstr "ỌDM." + +msgid "SID_LOGIN" +msgstr "ịbata" + +msgid "COM_SID_CANCEL" +msgstr "Kagbuo" + +msgid "COM_SID_ALLOW" +msgstr "Kwere" + +msgid "COM_SID_DENY" +msgstr "Jụ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Pịa ma jide bọtịnụ <> iji chọọ ihe." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "A ga-eziga ọdịyo gị na <> iji gbanye ọrụ nchọpụta okwu n'usoro nke iwu nzuzo nke <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Enwenwughi ike ịchọta ibe ahụ ị rịọrọ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pịa bọtịnụ Nlaghachi iji mechie." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Biko nwaa ọzọ ma emechaa." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Lelee ọkwa netwọk dị ugbu a." + +msgid "COM_SID_ERROR_CODE" msgstr "Koodu iri mpe" \ No newline at end of file diff --git a/wrt/resources/tv_locales/it_IT.po b/wrt/resources/tv_locales/it_IT.po index 5fa2c1f..ef59221 100755 --- a/wrt/resources/tv_locales/it_IT.po +++ b/wrt/resources/tv_locales/it_IT.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autenticaz. utente" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Info certificato" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notifica Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Autenticazione richiesta." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Si sono verificati problemi con il certificato di sicurezza di questo sito." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Consente al sito di mostrare le notifiche." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Ricorda preferenza." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nome utente" - -msgid "COM_SID_PASSWORD" -msgstr "Password" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Annulla" - -msgid "COM_SID_ALLOW" -msgstr "Consenti" - -msgid "COM_SID_DENY" -msgstr "Nega" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Per eseguire una ricerca, tenere premuto il pulsante <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Il tuo audio verrà inviato a <> per abilitare il suo servizio di riconoscimento vocale in conformità con l'informativa privacy di <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Impossibile trovare la pagina richiesta." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Premere il pulsante Return per chiudere." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Riprovare in seguito." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Verificare lo stato attuale della rete." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autenticaz. utente" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Info certificato" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notifica Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Autenticazione richiesta." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Si sono verificati problemi con il certificato di sicurezza di questo sito." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Consente al sito di mostrare le notifiche." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Ricorda preferenza." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nome utente" + +msgid "COM_SID_PASSWORD" +msgstr "Password" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Annulla" + +msgid "COM_SID_ALLOW" +msgstr "Consenti" + +msgid "COM_SID_DENY" +msgstr "Nega" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Per eseguire una ricerca, tenere premuto il pulsante <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Il tuo audio verrà inviato a <> per abilitare il suo servizio di riconoscimento vocale in conformità con l'informativa privacy di <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Impossibile trovare la pagina richiesta." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Premi il pulsante Ritorna per chiudere." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Riprovare in seguito." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Verificare lo stato attuale della rete." + +msgid "COM_SID_ERROR_CODE" msgstr "Codice errore" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ja_JP.po b/wrt/resources/tv_locales/ja_JP.po index e262780..613dc89 100755 --- a/wrt/resources/tv_locales/ja_JP.po +++ b/wrt/resources/tv_locales/ja_JP.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ユーザー認証" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "証明書情報" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web 通知" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "認証が必要です。" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "このサイトのセキュリティ証明書に問題があります。" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "この Web サイトが通知を表示するのを許可します。" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "設定を保存してください。" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ユーザー名" - -msgid "COM_SID_PASSWORD" -msgstr "パスワード" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "ログイン" - -msgid "COM_SID_CANCEL" -msgstr "キャンセル" - -msgid "COM_SID_ALLOW" -msgstr "許可" - -msgid "COM_SID_DENY" -msgstr "拒否" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "検索を行うには <> ボタンを押し続けてください。" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "音声信号は <> のプライバシー ポリシーに従って <> に送信され、音声認識サービスに利用されます。" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "リクエストされたページが見つかりません。" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "終了するには、[Return] ボタンを押してください。" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "少し待ってから再試行してください。" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "現在のネットワーク状態を確認します。" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ユーザー認証" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "証明書情報" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web 通知" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "認証が必要です。" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "このサイトのセキュリティ証明書に問題があります。" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "この Web サイトが通知を表示するのを許可します。" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "設定を保存してください。" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ユーザー名" + +msgid "COM_SID_PASSWORD" +msgstr "パスワード" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "ログイン" + +msgid "COM_SID_CANCEL" +msgstr "キャンセル" + +msgid "COM_SID_ALLOW" +msgstr "許可" + +msgid "COM_SID_DENY" +msgstr "拒否" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "検索を行うには <> ボタンを押し続けてください。" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "音声信号は <> のプライバシー ポリシーに従って <> に送信され、音声認識サービスに利用されます。" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "リクエストされたページが見つかりません。" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "終了するには、戻るボタンを押します。" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "少し待ってから再試行してください。" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "現在のネットワーク状態を確認します。" + +msgid "COM_SID_ERROR_CODE" msgstr "エラー コード" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ka_GE.po b/wrt/resources/tv_locales/ka_GE.po index 13bd9bc..6a09ada 100755 --- a/wrt/resources/tv_locales/ka_GE.po +++ b/wrt/resources/tv_locales/ka_GE.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "მომხმარებლის ავტორიზაცია" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "სერტიფიკატის ინფორმაცია" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ვებ-შეტყობინება" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "აუცილებელია ავთენტიფიკაცია." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ამ ვებსაიტის უსაფრთხოების სერტიფიკატთან დაკავშირებით პრობლემები წარმოიქმნა." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ამ ვებსაიტისთვის შეტყობინებების ჩვენების დაშვება." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "უპირატესი პარამეტრის დამახსოვრება." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "მომხმარებლის სახელი" - -msgid "COM_SID_PASSWORD" -msgstr "პაროლი" - -msgid "COM_SID_OK" -msgstr "კარგი" - -msgid "SID_LOGIN" -msgstr "შესვლა" - -msgid "COM_SID_CANCEL" -msgstr "გაუქმება" - -msgid "COM_SID_ALLOW" -msgstr "ნებართვა" - -msgid "COM_SID_DENY" -msgstr "უარყოფა" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "თუ რამის მოძებნა გსურთ, ხანგრძლივად დააჭირეთ ღილაკს <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "თქვენი აუდიო გაიგზავნება <>-ზე ხმის ამოცნობის მომსახურების ჩასართავად <>-ი კონფიდენციალობის პოლიტიკის თანახმად." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "თქვენ მიერ მოთხოვნილი გვერდის პოვნა შეუძლებელია." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "დასახურად, დააჭირეთ ღილაკს „Return“." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "სცადეთ მოგვიანებით." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "შეამოწმეთ მიმდინარე ქსელის სტატუსი." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "მომხმარებლის ავტორიზაცია" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "სერტიფიკატის ინფორმაცია" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ვებ-შეტყობინება" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "აუცილებელია ავთენტიფიკაცია." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ამ ვებსაიტის უსაფრთხოების სერტიფიკატთან დაკავშირებით პრობლემები წარმოიქმნა." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ამ ვებსაიტისთვის შეტყობინებების ჩვენების დაშვება." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "უპირატესი პარამეტრის დამახსოვრება." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "მომხმარებლის სახელი" + +msgid "COM_SID_PASSWORD" +msgstr "პაროლი" + +msgid "COM_SID_OK" +msgstr "კარგი" + +msgid "SID_LOGIN" +msgstr "შესვლა" + +msgid "COM_SID_CANCEL" +msgstr "გაუქმება" + +msgid "COM_SID_ALLOW" +msgstr "ნებართვა" + +msgid "COM_SID_DENY" +msgstr "უარყოფა" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "თუ რამის მოძებნა გსურთ, ხანგრძლივად დააჭირეთ ღილაკს <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "თქვენი აუდიო გაიგზავნება <>-ზე ხმის ამოცნობის მომსახურების ჩასართავად <>-ი კონფიდენციალობის პოლიტიკის თანახმად." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "თქვენ მიერ მოთხოვნილი გვერდის პოვნა შეუძლებელია." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "დასახურად, დააჭირეთ „დაბრუნების“ ღილაკს." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "სცადეთ მოგვიანებით." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "შეამოწმეთ მიმდინარე ქსელის სტატუსი." + +msgid "COM_SID_ERROR_CODE" msgstr "შეცდომის კოდი" \ No newline at end of file diff --git a/wrt/resources/tv_locales/kk_KZ.po b/wrt/resources/tv_locales/kk_KZ.po index 87b47c1..d69d9f4 100755 --- a/wrt/resources/tv_locales/kk_KZ.po +++ b/wrt/resources/tv_locales/kk_KZ.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Пайдаланушы аутентификациясы" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Сертификат туралы ақпарат" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Веб-хабарландыру" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Аутентификация қажет." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Осы тораптың қауіпсіздік куәлігінде проблемалар бар." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Осы веб-сайтқа хабарландыруларды көрсетуге рұқсат ету." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Теңшелімді есте сақтау." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Пайдаланушы аты" - -msgid "COM_SID_PASSWORD" -msgstr "Құпия сөз" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Кіру" - -msgid "COM_SID_CANCEL" -msgstr "Болдырмау" - -msgid "COM_SID_ALLOW" -msgstr "Рұқсат" - -msgid "COM_SID_DENY" -msgstr "Бас т" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Іздеуді жүзеге асыру үшін <> батырмасын басып ұстап тұрыңыз." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Сөйлеген сөзді тану қызметін <> құпиялылық саясатына сәйкес іске қосу үшін сіздің аудиоңыз <>-ға жіберіледі." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Сіз сұраған бетті табу мүмкін емес." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Жабу үшін Return түймесін басыңыз." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Әрекетті кейінірек қайталаңыз." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Ағымдағы желі күйін тексеріңіз." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Пайдаланушы аутентификациясы" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Сертификат туралы ақпарат" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Веб-хабарландыру" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Аутентификация қажет." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Осы тораптың қауіпсіздік куәлігінде проблемалар бар." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Осы веб-сайтқа хабарландыруларды көрсетуге рұқсат ету." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Теңшелімді есте сақтау." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Пайдаланушы аты" + +msgid "COM_SID_PASSWORD" +msgstr "Құпия сөз" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Кіру" + +msgid "COM_SID_CANCEL" +msgstr "Болдырмау" + +msgid "COM_SID_ALLOW" +msgstr "Рұқсат" + +msgid "COM_SID_DENY" +msgstr "Бас т" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Іздеуді жүзеге асыру үшін <> батырмасын басып ұстап тұрыңыз." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Сөйлеген сөзді тану қызметін <> құпиялылық саясатына сәйкес іске қосу үшін сіздің аудиоңыз <>-ға жіберіледі." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Сіз сұраған бетті табу мүмкін емес." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Жабу үшін «Қайту» түймесін басыңыз." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Әрекетті кейінірек қайталаңыз." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Ағымдағы желі күйін тексеріңіз." + +msgid "COM_SID_ERROR_CODE" msgstr "Қате коды" \ No newline at end of file diff --git a/wrt/resources/tv_locales/km_KH.po b/wrt/resources/tv_locales/km_KH.po index bedd1a8..db5f690 100755 --- a/wrt/resources/tv_locales/km_KH.po +++ b/wrt/resources/tv_locales/km_KH.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ការផ្ទៀងផ្ទាត់​ភាពពិត​របស់​អ្នកប្រើប្រាស់" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ព័ត៌មាន​វិញ្ញាបនបត្រ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ការជូនដំណឹង​វិប" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ត្រូវការ​ការផ្ទៀងផ្ទាត់​ភាពពិត។" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "មាន​បញ្ហា​ជាមួយ​វិញ្ញាបនបត្រ​សន្តិសុខ​សម្រាប់​វិបសៃ​នេះ។" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "អនុញ្ញាត​ឲ្យ​វិបសៃ​នេះ​បង្ហាញ​ការជូនដំណឹង។" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ចងចាំ​ចំណូលចិត្ត។" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ឈ្មោះ​អ្នកប្រើប្រាស់" - -msgid "COM_SID_PASSWORD" -msgstr "ពាក្យសម្ងាត់" - -msgid "COM_SID_OK" -msgstr "ព្រម" - -msgid "SID_LOGIN" -msgstr "ចុះឈ្មោះចូល" - -msgid "COM_SID_CANCEL" -msgstr "បោះបង់" - -msgid "COM_SID_ALLOW" -msgstr "អនុញ្ញាត" - -msgid "COM_SID_DENY" -msgstr "បដិសេធ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "ចុច និងសង្កត់ប៊ូតុង <> ដើម្បីស្វែងរកអ្វីមួយ។" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "អូឌីយ៉ូរបស់អ្នកនឹងផ្ញើទៅ <> ដើម្បីបើកសេវាស្គាល់​សំ​ឡេងស្របតាមគោលនយោបាយសិទ្ធិឯកជនរបស់ <>។" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "មិន​អាច​រក​ទំព័រ​ដែល​អ្នក​បាន​ស្នើ។" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ចុច​ប៊ូតុង Return ដើម្បី​បិទ។" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "សូម​សាកល្បង​ម្ដងទៀត​ពេលក្រោយ។" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ពិនិត្យ​ស្ថានភាព​បណ្ដាញ​បច្ចុប្បន្ន។" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ការផ្ទៀងផ្ទាត់​ភាពពិត​របស់​អ្នកប្រើប្រាស់" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ព័ត៌មាន​វិញ្ញាបនបត្រ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ការជូនដំណឹង​វិប" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ត្រូវការ​ការផ្ទៀងផ្ទាត់​ភាពពិត។" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "មាន​បញ្ហា​ជាមួយ​វិញ្ញាបនបត្រ​សន្តិសុខ​សម្រាប់​វិបសៃ​នេះ។" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "អនុញ្ញាត​ឲ្យ​វិបសៃ​នេះ​បង្ហាញ​ការជូនដំណឹង។" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ចងចាំ​ចំណូលចិត្ត។" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ឈ្មោះ​អ្នកប្រើប្រាស់" + +msgid "COM_SID_PASSWORD" +msgstr "ពាក្យសម្ងាត់" + +msgid "COM_SID_OK" +msgstr "ព្រម" + +msgid "SID_LOGIN" +msgstr "ចុះឈ្មោះចូល" + +msgid "COM_SID_CANCEL" +msgstr "បោះបង់" + +msgid "COM_SID_ALLOW" +msgstr "អនុញ្ញាត" + +msgid "COM_SID_DENY" +msgstr "បដិសេធ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "ចុច និងសង្កត់ប៊ូតុង <> ដើម្បីស្វែងរកអ្វីមួយ។" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "អូឌីយ៉ូរបស់អ្នកនឹងផ្ញើទៅ <> ដើម្បីបើកសេវាស្គាល់​សំ​ឡេងស្របតាមគោលនយោបាយសិទ្ធិឯកជនរបស់ <>។" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "មិន​អាច​រក​ទំព័រ​ដែល​អ្នក​បាន​ស្នើ។" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ចុច​ប៊ូតុង​ត្រឡប់ ដើម្បី​បិទ។" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "សូម​សាកល្បង​ម្ដងទៀត​ពេលក្រោយ។" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ពិនិត្យ​ស្ថានភាព​បណ្ដាញ​បច្ចុប្បន្ន។" + +msgid "COM_SID_ERROR_CODE" msgstr "កូដ​កំហុស" \ No newline at end of file diff --git a/wrt/resources/tv_locales/kn_IN.po b/wrt/resources/tv_locales/kn_IN.po index 2815d4f..e3f5de9 100755 --- a/wrt/resources/tv_locales/kn_IN.po +++ b/wrt/resources/tv_locales/kn_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ಬಳಕೆದಾರರ ದೃಢೀಕರಣ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ಪ್ರಮಾಣಪತ್ರ ಮಾಹಿತಿ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ವೆಬ್ ಅಧಿಸೂಚನೆ" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ದೃಢೀಕರಣ ಅಗತ್ಯವಿದೆ." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ಈ ಸೈಟ್‌ನ ಭದ್ರತಾ ಪ್ರಮಾಣಪತ್ರದಲ್ಲಿ ಸಮಸ್ಯೆಗಳಿವೆ." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಲು ಈ ವೆಬ್‌ಸೈಟ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ಆದ್ಯತೆಯನ್ನು ನೆನಪಿಡು." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ಬಳಕೆದಾರ ಹೆಸರು" - -msgid "COM_SID_PASSWORD" -msgstr "ಪಾಸ್‌ವರ್ಡ್" - -msgid "COM_SID_OK" -msgstr "ಸರಿ" - -msgid "SID_LOGIN" -msgstr "ಲಾಗಿನ್" - -msgid "COM_SID_CANCEL" -msgstr "ರದ್ದು" - -msgid "COM_SID_ALLOW" -msgstr "ಅನುಮತಿಸಿ" - -msgid "COM_SID_DENY" -msgstr "ನಿರಾಕರಿಸಿ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "ಏನಾದರೂ ಹುಡುಕಬೇಕಿದ್ದರೆ <> ಬಟನ್ ಒತ್ತಿ ಹಿಡಿಯಿರಿ." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> ನ ಗೌಪ್ಯತೆ ನೀತಿಗೆ ಅನುಗುಣವಾಗಿ, ನಿಮ್ಮ ಆಡಿಯೋದ ಸ್ಪೀಚ್ ರೆಕಗ್ನೀಶನ್ ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದಕ್ಕಾಗಿ ಅದನ್ನು <> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ನೀವು ವಿನಂತಿಸಿದ ಪುಟವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ಮುಚ್ಚಲು Return ಬಟನ್ ಒತ್ತಿ." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "ದಯವಿಟ್ಟು ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ಪ್ರಸ್ತುತ ನೆಟ್‌ವರ್ಕ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ಬಳಕೆದಾರರ ದೃಢೀಕರಣ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ಪ್ರಮಾಣಪತ್ರ ಮಾಹಿತಿ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ವೆಬ್ ಅಧಿಸೂಚನೆ" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ದೃಢೀಕರಣ ಅಗತ್ಯವಿದೆ." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ಈ ಸೈಟ್‌ನ ಭದ್ರತಾ ಪ್ರಮಾಣಪತ್ರದಲ್ಲಿ ಸಮಸ್ಯೆಗಳಿವೆ." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಲು ಈ ವೆಬ್‌ಸೈಟ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ಆದ್ಯತೆಯನ್ನು ನೆನಪಿಡು." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ಬಳಕೆದಾರ ಹೆಸರು" + +msgid "COM_SID_PASSWORD" +msgstr "ಪಾಸ್‌ವರ್ಡ್" + +msgid "COM_SID_OK" +msgstr "ಸರಿ" + +msgid "SID_LOGIN" +msgstr "ಲಾಗಿನ್" + +msgid "COM_SID_CANCEL" +msgstr "ರದ್ದು" + +msgid "COM_SID_ALLOW" +msgstr "ಅನುಮತಿಸಿ" + +msgid "COM_SID_DENY" +msgstr "ನಿರಾಕರಿಸಿ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "ಏನಾದರೂ ಹುಡುಕಬೇಕಿದ್ದರೆ <> ಬಟನ್ ಒತ್ತಿ ಹಿಡಿಯಿರಿ." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> ನ ಗೌಪ್ಯತೆ ನೀತಿಗೆ ಅನುಗುಣವಾಗಿ, ನಿಮ್ಮ ಆಡಿಯೋದ ಸ್ಪೀಚ್ ರೆಕಗ್ನೀಶನ್ ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದಕ್ಕಾಗಿ ಅದನ್ನು <> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ನೀವು ವಿನಂತಿಸಿದ ಪುಟವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ಮುಚ್ಚಲು ಮರಳಿ ಬಟನ್ ಒತ್ತಿ." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "ದಯವಿಟ್ಟು ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ಪ್ರಸ್ತುತ ನೆಟ್‌ವರ್ಕ್ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ." + +msgid "COM_SID_ERROR_CODE" msgstr "ದೋಷ ಕೋಡ್" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ko_KR.po b/wrt/resources/tv_locales/ko_KR.po index db62d50..712a1a6 100755 --- a/wrt/resources/tv_locales/ko_KR.po +++ b/wrt/resources/tv_locales/ko_KR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "사용자 인증" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "인증서 정보" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "웹 알림" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "인증이 필요합니다." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "이 웹사이트의 보안 인증서에 문제가 있습니다." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "이 사이트가 알림을 표시할 수 있도록 허용합니다." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "설정을 기억합니다." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "사용자 이름" - -msgid "COM_SID_PASSWORD" -msgstr "비밀번호" - -msgid "COM_SID_OK" -msgstr "확인" - -msgid "SID_LOGIN" -msgstr "로그인" - -msgid "COM_SID_CANCEL" -msgstr "취소" - -msgid "COM_SID_ALLOW" -msgstr "허용" - -msgid "COM_SID_DENY" -msgstr "차단" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "<> 버튼을 누른 채로 음성 검색을 진행해주세요." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "음성인식 서비스를 제공하기 위해 <>의 개인정보 보호정책에 따라 음성 정보가 <>로 전송됩니다." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "요청하신 페이지를 찾을 수 없습니다." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "닫으려면 복귀 버튼을 누르세요." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "잠시 후 다시 시도해 주세요." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "현재 네트워크 연결상태를 확인합니다." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "사용자 인증" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "인증서 정보" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "웹 알림" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "인증이 필요합니다." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "이 웹사이트의 보안 인증서에 문제가 있습니다." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "이 사이트가 알림을 표시할 수 있도록 허용합니다." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "설정을 기억합니다." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "사용자 이름" + +msgid "COM_SID_PASSWORD" +msgstr "비밀번호" + +msgid "COM_SID_OK" +msgstr "확인" + +msgid "SID_LOGIN" +msgstr "로그인" + +msgid "COM_SID_CANCEL" +msgstr "취소" + +msgid "COM_SID_ALLOW" +msgstr "허용" + +msgid "COM_SID_DENY" +msgstr "차단" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "<> 버튼을 누른 채로 음성 검색을 진행해주세요." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "음성인식 서비스를 제공하기 위해 <>의 개인정보 보호정책에 따라 음성 정보가 <>로 전송됩니다." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "요청하신 페이지를 찾을 수 없습니다." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "닫으려면 복귀 버튼을 누르세요." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "잠시 후 다시 시도해 주세요." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "현재 네트워크 연결상태를 확인합니다." + +msgid "COM_SID_ERROR_CODE" msgstr "에러 코드" \ No newline at end of file diff --git a/wrt/resources/tv_locales/kok_IN.po b/wrt/resources/tv_locales/kok_IN.po index 957a82e..20247d5 100755 --- a/wrt/resources/tv_locales/kok_IN.po +++ b/wrt/resources/tv_locales/kok_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "वापरप्याचें सत्यापन" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "प्रमाणपत्राची माहिती" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वॅब अधिसुचोवणी" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "सत्यताय पारखण गरजेची आसा." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ह्या थळाच्या सुरक्षा प्रमाणपत्रा वांगडा समस्या आसात." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "हे वॅबसायटीक अधिसुचोवण्यो दाखोवंक मेकळीक दिवची." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "पसंतीचो उगडास दवरात." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "यूजर नांव" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "ओके" - -msgid "SID_LOGIN" -msgstr "लॉग इन" - -msgid "COM_SID_CANCEL" -msgstr "रद्द करचें" - -msgid "COM_SID_ALLOW" -msgstr "मान्यताय दिवप" - -msgid "COM_SID_DENY" -msgstr "नाकारचें" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "किदेंय सोदपा खातीर, <> बटण दामचो आनी तसोच धरचो." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> प्रायवसी पॉलिसी प्रमाणें, ताची वाचा पारखणी सेवा अनुकूल करूंक, तुमचो ऑडिओ <> क धाडटले." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "तुमी विनंती केल्लें पान सोदूंक शकना." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "धांपूक Return बटन दामचो." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "उपकार करून मागीर परत येत्न करचो." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "चालंत नॅटवर्क स्थिती तपासची." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "वापरप्याचें सत्यापन" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "प्रमाणपत्राची माहिती" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वॅब अधिसुचोवणी" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "सत्यताय पारखण गरजेची आसा." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ह्या थळाच्या सुरक्षा प्रमाणपत्रा वांगडा समस्या आसात." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "हे वॅबसायटीक अधिसुचोवण्यो दाखोवंक मेकळीक दिवची." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "पसंतीचो उगडास दवरात." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "यूजर नांव" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "ओके" + +msgid "SID_LOGIN" +msgstr "लॉग इन" + +msgid "COM_SID_CANCEL" +msgstr "रद्द करचें" + +msgid "COM_SID_ALLOW" +msgstr "मान्यताय दिवप" + +msgid "COM_SID_DENY" +msgstr "नाकारचें" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "किदेंय सोदपा खातीर, <> बटण दामचो आनी तसोच धरचो." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> प्रायवसी पॉलिसी प्रमाणें, ताची वाचा पारखणी सेवा अनुकूल करूंक, तुमचो ऑडिओ <> क धाडटले." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "तुमी विनंती केल्लें पान सोदूंक शकना." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "बंद करूंक परत बटण दामचो." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "उपकार करून मागीर परत येत्न करचो." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "चालंत नॅटवर्क स्थिती तपासची." + +msgid "COM_SID_ERROR_CODE" msgstr "चुकीचो कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ks_IN.po b/wrt/resources/tv_locales/ks_IN.po index f859fc4..c27c35f 100755 --- a/wrt/resources/tv_locales/ks_IN.po +++ b/wrt/resources/tv_locales/ks_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "यूजर तस्दीकी" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "सर्टिफिकेट इन्फो" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब नोटिफिकेशन" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ओथनटिकेशन हुंद छु ज़रुरत." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "येमि साइटि खातिर छु सिकोरटी सर्टिफिकेट हंद्य् मसलः दरपेश." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "यथ वेबसाइटि दियिव नोटिफिकेशनः परनुक इजाज़त." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "तरजीह थायिव याद." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "यूज़र नाव" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "ओके" - -msgid "SID_LOGIN" -msgstr "लागइन" - -msgid "COM_SID_CANCEL" -msgstr "मंसोख्त" - -msgid "COM_SID_ALLOW" -msgstr "इज़ाज़त" - -msgid "COM_SID_DENY" -msgstr "रद्द" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "कुनि ति खातिर सर्च करनः बापथ दबायिव तः करिव होल्ड <> बटुन." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> राजदारी हिन्ज़ पालिसी मुताबिक आवाज़ शिनाख्त सर्विस फआल करनः खातिर यियि तुहुंद आडियो <> कुन सोज़नः." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "युस सफः तुह्य स़ांडान छिवः सु छेनः अथि यिवान." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बंद करनः खातिरप दबविव Return बटन." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "महरबानी करिथ करिव पतः पहन कोशिश." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "चेक करिव मुजोउद नेटवर्क स्टेटस." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "यूजर तस्दीकी" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "सर्टिफिकेट इन्फो" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब नोटिफिकेशन" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ओथनटिकेशन हुंद छु ज़रुरत." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "येमि साइटि खातिर छु सिकोरटी सर्टिफिकेट हंद्य् मसलः दरपेश." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "यथ वेबसाइटि दियिव नोटिफिकेशनः परनुक इजाज़त." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "तरजीह थायिव याद." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "यूज़र नाव" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "ओके" + +msgid "SID_LOGIN" +msgstr "लागइन" + +msgid "COM_SID_CANCEL" +msgstr "मंसोख्त" + +msgid "COM_SID_ALLOW" +msgstr "इज़ाज़त" + +msgid "COM_SID_DENY" +msgstr "रद्द" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "कुनि ति खातिर सर्च करनः बापथ दबायिव तः करिव होल्ड <> बटुन." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> राजदारी हिन्ज़ पालिसी मुताबिक आवाज़ शिनाख्त सर्विस फआल करनः खातिर यियि तुहुंद आडियो <> कुन सोज़नः." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "युस सफः तुह्य स़ांडान छिवः सु छेनः अथि यिवान." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "दबविव वापस बटन मंज़ बंद करनः खात्र." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "महरबानी करिथ करिव पतः पहन कोशिश." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "चेक करिव मुजोउद नेटवर्क स्टेटस." + +msgid "COM_SID_ERROR_CODE" msgstr "एरर कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ku_TR.po b/wrt/resources/tv_locales/ku_TR.po index a7146f6..d8fcf5af 100755 --- a/wrt/resources/tv_locales/ku_TR.po +++ b/wrt/resources/tv_locales/ku_TR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Pesendkirina Bikarhêner" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Agahiyên sertîfîkayê" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Hişyariya webê" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Rastandin pêdivîye." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Hinek kêşe hene gel bawernameya ewlehîyê bo bikaranîna ev rûpelê." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Destûrê dide vê malperê ku hişyariyan nîşan bide." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Bijartîyên bîrxistinê." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Navê Bikarîner" - -msgid "COM_SID_PASSWORD" -msgstr "Şîfre" - -msgid "COM_SID_OK" -msgstr "Temam" - -msgid "SID_LOGIN" -msgstr "Têkeve" - -msgid "COM_SID_CANCEL" -msgstr "Betalke" - -msgid "COM_SID_ALLOW" -msgstr "Destûrbide" - -msgid "COM_SID_DENY" -msgstr "Redbike" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Bo lêgerîna tiştekî, bişkovja <> pêlke û ragire." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Li gorî siyaseta parastina <>, dengê we tê ji <> ê re bo çalak kirina xizmeta nasandina dengî, were şandin." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Rûpela te xwestiye nehat dîtin." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Bo girtinê bişkovja Return pêlke." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Dîsa paşê bixebite." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Rewşa torê ya heyî venêre." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Pesendkirina Bikarhêner" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Agahiyên sertîfîkayê" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Hişyariya webê" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Rastandin pêdivîye." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Hinek kêşe hene gel bawernameya ewlehîyê bo bikaranîna ev rûpelê." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Destûrê dide vê malperê ku hişyariyan nîşan bide." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Bijartîyên bîrxistinê." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Navê Bikarîner" + +msgid "COM_SID_PASSWORD" +msgstr "Şîfre" + +msgid "COM_SID_OK" +msgstr "Temam" + +msgid "SID_LOGIN" +msgstr "Têkeve" + +msgid "COM_SID_CANCEL" +msgstr "Betalke" + +msgid "COM_SID_ALLOW" +msgstr "Destûrbide" + +msgid "COM_SID_DENY" +msgstr "Redbike" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Bo lêgerîna tiştekî, bişkovja <> pêlke û ragire." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Li gorî siyaseta parastina <>, dengê we tê ji <> ê re bo çalak kirina xizmeta nasandina dengî, were şandin." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Rûpela te xwestiye nehat dîtin." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Bo girtinê bişkovja Vegerê pêlke." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Dîsa paşê bixebite." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Rewşa torê ya heyî venêre." + +msgid "COM_SID_ERROR_CODE" msgstr "Koda xeletiyê" \ No newline at end of file diff --git a/wrt/resources/tv_locales/lt_LT.po b/wrt/resources/tv_locales/lt_LT.po index 8451ff0..67cdaeb 100755 --- a/wrt/resources/tv_locales/lt_LT.po +++ b/wrt/resources/tv_locales/lt_LT.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Naudotojo autentifikavimas" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifikato informacija" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Žiniatinklio pranešimas" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Reikia autentifikuoti." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Kilo problemų dėl šios svetainės saugos sertifikato." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Leidžia šiai svetainei rodyti pranešimus." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Nuostata įsiminta." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Naudotojo vardas" - -msgid "COM_SID_PASSWORD" -msgstr "Slaptažodis" - -msgid "COM_SID_OK" -msgstr "Gerai" - -msgid "SID_LOGIN" -msgstr "Prisireg." - -msgid "COM_SID_CANCEL" -msgstr "Atšaukti" - -msgid "COM_SID_ALLOW" -msgstr "Leisti" - -msgid "COM_SID_DENY" -msgstr "Neleist." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Norėdami ko nors ieškoti, paspauskite ir laikykite paspaudę mygtuką „<>“." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Jūsų garsas bus išsiųstas į „<>“, kad būtų įjungta jūsų kalbos atpažinimo paslauga pagal „<>“ privatumo politiką." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Nepavyko rasti jūsų užklausto puslapio." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Norėdami uždaryti, paspauskite mygtuką „Return“." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Pabandykite dar kartą vėliau." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Patikrinkite esamą tinklo būseną." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Naudotojo autentifikavimas" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifikato informacija" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Žiniatinklio pranešimas" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Reikia autentifikuoti." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Kilo problemų dėl šios svetainės saugos sertifikato." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Leidžia šiai svetainei rodyti pranešimus." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Nuostata įsiminta." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Naudotojo vardas" + +msgid "COM_SID_PASSWORD" +msgstr "Slaptažodis" + +msgid "COM_SID_OK" +msgstr "Gerai" + +msgid "SID_LOGIN" +msgstr "Prisireg." + +msgid "COM_SID_CANCEL" +msgstr "Atšaukti" + +msgid "COM_SID_ALLOW" +msgstr "Leisti" + +msgid "COM_SID_DENY" +msgstr "Neleist." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Norėdami ko nors ieškoti, paspauskite ir laikykite paspaudę mygtuką „<>“." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Jūsų garsas bus išsiųstas į „<>“, kad būtų įjungta jūsų kalbos atpažinimo paslauga pagal „<>“ privatumo politiką." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Nepavyko rasti jūsų užklausto puslapio." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Norėdami uždaryti, paspauskite mygtuką „Grįžti“." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Pabandykite dar kartą vėliau." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Patikrinkite esamą tinklo būseną." + +msgid "COM_SID_ERROR_CODE" msgstr "Klaidos kodas" \ No newline at end of file diff --git a/wrt/resources/tv_locales/lv_LV.po b/wrt/resources/tv_locales/lv_LV.po index 299ea4a..f4d6033 100755 --- a/wrt/resources/tv_locales/lv_LV.po +++ b/wrt/resources/tv_locales/lv_LV.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Lietotāja autentifikācija" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifikāta informācija" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Tīmekļa paziņojums" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Nepieciešama autentifikācija." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Radušās problēmas ar šīs vietnes drošības sertifikātu." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Ļauj šai vietnei parādīt paziņojumus." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Preference saglabāta." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Lietotājvārds" - -msgid "COM_SID_PASSWORD" -msgstr "Parole" - -msgid "COM_SID_OK" -msgstr "Labi" - -msgid "SID_LOGIN" -msgstr "Pieteikt." - -msgid "COM_SID_CANCEL" -msgstr "Atcelt" - -msgid "COM_SID_ALLOW" -msgstr "Atļaut" - -msgid "COM_SID_DENY" -msgstr "Aizliegt" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Nospiediet un turiet pogu <>, lai kaut ko meklētu." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Jūsu audio tiks nosūtīts uz <>, lai iespējotu tā runas atpazīšanas pakalpojumu atbilstoši <> konfidencialitātes politikai." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Nevar atrast pieprasīto lapu." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Nospiediet pogu Return, lai aizvērtu." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Lūdzu, vēlāk mēģiniet vēlreiz." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Pārbaudiet pašreizējo tīkla statusu." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Lietotāja autentifikācija" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifikāta informācija" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Tīmekļa paziņojums" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Nepieciešama autentifikācija." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Radušās problēmas ar šīs vietnes drošības sertifikātu." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Ļauj šai vietnei parādīt paziņojumus." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Preference saglabāta." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Lietotājvārds" + +msgid "COM_SID_PASSWORD" +msgstr "Parole" + +msgid "COM_SID_OK" +msgstr "Labi" + +msgid "SID_LOGIN" +msgstr "Pieteikt." + +msgid "COM_SID_CANCEL" +msgstr "Atcelt" + +msgid "COM_SID_ALLOW" +msgstr "Atļaut" + +msgid "COM_SID_DENY" +msgstr "Aizliegt" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Nospiediet un turiet pogu <>, lai kaut ko meklētu." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Jūsu audio tiks nosūtīts uz <>, lai iespējotu tā runas atpazīšanas pakalpojumu atbilstoši <> konfidencialitātes politikai." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Nevar atrast pieprasīto lapu." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Nospiediet pogu Atgriezties, lai aizvērtu." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Lūdzu, vēlāk mēģiniet vēlreiz." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Pārbaudiet pašreizējo tīkla statusu." + +msgid "COM_SID_ERROR_CODE" msgstr "Kļūdas kods" \ No newline at end of file diff --git a/wrt/resources/tv_locales/mai_IN.po b/wrt/resources/tv_locales/mai_IN.po index 3569949..a64c9d90 100755 --- a/wrt/resources/tv_locales/mai_IN.po +++ b/wrt/resources/tv_locales/mai_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "उपयोगकर्ता प्रामाणिकता" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "प्रमाणपत्र जानकारी" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब अधिसूचना" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "प्रामाणिकता आवश्यक अछि." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "एहि साइट लेल सुरक्षा प्रमाणपत्र संग किछु समस्या अछि." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "एहि वेबसाइटकेँ अधिसूचना प्रदर्शित करबाक अनुमति दैत अछि." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "प्राथमिकताक स्मरण राखू." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "उपयोगकर्ताक नाम" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "ठीक" - -msgid "SID_LOGIN" -msgstr "सत्रक शुरुआत" - -msgid "COM_SID_CANCEL" -msgstr "निरस्त" - -msgid "COM_SID_ALLOW" -msgstr "अनुमति" - -msgid "COM_SID_DENY" -msgstr "अस्वीकृत" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "किछु खोज करबाक लेल <> बटन केँ दबाऊ आ पकडू राखू." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "एकर भाषण पहचान सेवाकेँ सक्षम करबाक लेल <> केँ गोपनीयता नीतिक अनुरूप अहाँक ऑडियो <> पर पठाओल जायत." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "पृष्ठ जेकर अहाँ अनुरोध कयल अछि प्राप्त करबामे असमर्थ छी." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बन्द करबाक लेल Return बटनकेँ दबाऊ." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "कृप्या बाद मे पुनः प्रयास करू." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "वर्तमान नेटवर्कक स्टेट्स जाँच करु." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "उपयोगकर्ता प्रामाणिकता" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "प्रमाणपत्र जानकारी" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब अधिसूचना" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "प्रामाणिकता आवश्यक अछि." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "एहि साइट लेल सुरक्षा प्रमाणपत्र संग किछु समस्या अछि." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "एहि वेबसाइटकेँ अधिसूचना प्रदर्शित करबाक अनुमति दैत अछि." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "प्राथमिकताक स्मरण राखू." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "उपयोगकर्ताक नाम" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "ठीक" + +msgid "SID_LOGIN" +msgstr "सत्रक शुरुआत" + +msgid "COM_SID_CANCEL" +msgstr "निरस्त" + +msgid "COM_SID_ALLOW" +msgstr "अनुमति" + +msgid "COM_SID_DENY" +msgstr "अस्वीकृत" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "किछु खोज करबाक लेल <> बटन केँ दबाऊ आ पकडू राखू." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "एकर भाषण पहचान सेवाकेँ सक्षम करबाक लेल <> केँ गोपनीयता नीतिक अनुरूप अहाँक ऑडियो <> पर पठाओल जायत." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "पृष्ठ जेकर अहाँ अनुरोध कयल अछि प्राप्त करबामे असमर्थ छी." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "केँ बन्द करबाक लेल वापस बटनकेँ दबाऊ." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "कृप्या बाद मे पुनः प्रयास करू." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "वर्तमान नेटवर्कक स्टेट्स जाँच करु." + +msgid "COM_SID_ERROR_CODE" msgstr "अशुद्धि कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/mi_NZ.po b/wrt/resources/tv_locales/mi_NZ.po index 410b269..e118599 100755 --- a/wrt/resources/tv_locales/mi_NZ.po +++ b/wrt/resources/tv_locales/mi_NZ.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Motuhēhēnga Kaiwhakamahi" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Mōhiohio tiwhikete" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Whakamōhiotanga tukutuku" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "E hiahiatia ana te motuhēhēnga." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Kei te tiwhikete haumarutanga mō tēnei pae ētahi raruraru." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Ka tuku kia whakaatu whakamōhiotanga tēnei paetukutuku." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Maharatia te manakohanga." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Ingoa Kaiwhakamahi" - -msgid "COM_SID_PASSWORD" -msgstr "Kupuhipa" - -msgid "COM_SID_OK" -msgstr "ĀE" - -msgid "SID_LOGIN" -msgstr "Takiuru" - -msgid "COM_SID_CANCEL" -msgstr "Whakakore" - -msgid "COM_SID_ALLOW" -msgstr "Tuku" - -msgid "COM_SID_DENY" -msgstr "Whakapeka" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Pēhi ka pupuri i te pātene <> kia rapua tētahi mea." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ka tukua tō ororongo ki <> kia whakahohea tōna ratonga āhukareo e ai ki te kaupapahere tūmataitinga o <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Kāore i te kite te whārangi i tono koe." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Press the Return button to close." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Me ngana anō ā muri ake." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Tirohia te tūnga whatunga onāianei." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Motuhēhēnga Kaiwhakamahi" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Mōhiohio tiwhikete" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Whakamōhiotanga tukutuku" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "E hiahiatia ana te motuhēhēnga." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Kei te tiwhikete haumarutanga mō tēnei pae ētahi raruraru." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Ka tuku kia whakaatu whakamōhiotanga tēnei paetukutuku." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Maharatia te manakohanga." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Ingoa Kaiwhakamahi" + +msgid "COM_SID_PASSWORD" +msgstr "Kupuhipa" + +msgid "COM_SID_OK" +msgstr "ĀE" + +msgid "SID_LOGIN" +msgstr "Takiuru" + +msgid "COM_SID_CANCEL" +msgstr "Whakakore" + +msgid "COM_SID_ALLOW" +msgstr "Tuku" + +msgid "COM_SID_DENY" +msgstr "Whakapeka" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Pēhi ka pupuri i te pātene <> kia rapua tētahi mea." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ka tukua tō ororongo ki <> kia whakahohea tōna ratonga āhukareo e ai ki te kaupapahere tūmataitinga o <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Kāore i te kite te whārangi i tono koe." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pēhia te pātene Hoki hei kati." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Me ngana anō ā muri ake." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Tirohia te tūnga whatunga onāianei." + +msgid "COM_SID_ERROR_CODE" msgstr "Waehere hapa" \ No newline at end of file diff --git a/wrt/resources/tv_locales/mk_MK.po b/wrt/resources/tv_locales/mk_MK.po index a479132..5a6374d 100755 --- a/wrt/resources/tv_locales/mk_MK.po +++ b/wrt/resources/tv_locales/mk_MK.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Потврда на корисникот" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Информации за сертификатот" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Веб-известување" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Потребна е потврда." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Има проблеми со сертификатот за безбедност за оваа локација." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Дозволете оваа веб-локација да прикажува известувања." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Запомни претпочитувања." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Корисничко име" - -msgid "COM_SID_PASSWORD" -msgstr "Лозинка" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Најава" - -msgid "COM_SID_CANCEL" -msgstr "Откажи" - -msgid "COM_SID_ALLOW" -msgstr "Дозволи" - -msgid "COM_SID_DENY" -msgstr "Одбиј" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Притиснете и задржете го копчето <> за да пребарате нешто." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Вашето аудио ќе се испрати на <> за да се овозможи услугата за препознавање говор во согласност со политиката за приватност на <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Не може да се најде страницата што ја баравте." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Притиснете го копчето Return за да затворите." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Обидете се повторно подоцна." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Го проверува тековниот статус на мрежата." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Потврда на корисникот" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Информации за сертификатот" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Веб-известување" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Потребна е потврда." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Има проблеми со сертификатот за безбедност за оваа локација." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Дозволете оваа веб-локација да прикажува известувања." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Запомни претпочитувања." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Корисничко име" + +msgid "COM_SID_PASSWORD" +msgstr "Лозинка" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Најава" + +msgid "COM_SID_CANCEL" +msgstr "Откажи" + +msgid "COM_SID_ALLOW" +msgstr "Дозволи" + +msgid "COM_SID_DENY" +msgstr "Одбиј" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Притиснете и задржете го копчето <> за да пребарате нешто." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Вашето аудио ќе се испрати на <> за да се овозможи услугата за препознавање говор во согласност со политиката за приватност на <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Не може да се најде страницата што ја баравте." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Притиснете го копчето Врати за да затворите." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Обидете се повторно подоцна." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Го проверува тековниот статус на мрежата." + +msgid "COM_SID_ERROR_CODE" msgstr "Код на грешка" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ml_IN.po b/wrt/resources/tv_locales/ml_IN.po index ad8b51f..f8212f2 100755 --- a/wrt/resources/tv_locales/ml_IN.po +++ b/wrt/resources/tv_locales/ml_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ഉപയോക്താവിനെ ആധികാരികമാക്കൽ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "സർട്ടിഫിക്കറ്റ് വിവരം" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "വെബ് അറിയിപ്പ്" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ആധികാരികമാക്കൽ ആവശ്യമാണ്." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ഈ സൈറ്റിനായുള്ള സുരക്ഷാ സർട്ടിഫിക്കറ്റുമായി ബന്ധപ്പെട്ട് പ്രശ്നങ്ങൾ ഉണ്ട്." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "അറിയിപ്പുകൾ കാണിക്കാൻ ഈ വെബ്‌സൈറ്റിനെ അനുവദിക്കുന്നു." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "മുൻഗണന ഓർമ്മിക്കുക." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ഉപയോക്തൃനാമം" - -msgid "COM_SID_PASSWORD" -msgstr "പാസ്​വേഡ്" - -msgid "COM_SID_OK" -msgstr "ഓകെ" - -msgid "SID_LOGIN" -msgstr "ലോഗിൻ ചെയ്യുക" - -msgid "COM_SID_CANCEL" -msgstr "റദ്ദാക്കുക" - -msgid "COM_SID_ALLOW" -msgstr "അനുവദി." - -msgid "COM_SID_DENY" -msgstr "നിരാക." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "എന്തെങ്കിലും അന്വേഷിച്ചതിന് <> ബട്ടൺ അമർത്തിപ്പിടിക്കുക." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> ന്റെ സ്വകാര്യതാ നയം അനുസരിച്ച് അതിന്റെ ശബ്ദ തിരിച്ചെടുക്കൽ സേവനം പ്രാപ്തമാക്കുന്നതിന് നിങ്ങളുടെ ഓഡിയോ <> എന്ന വിലാസത്തിലേക്ക് അയയ്ക്കും." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "നിങ്ങൾ അഭ്യർത്ഥിച്ച പേജ് കണ്ടെത്താനാവുന്നില്ല." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "അടയ്ക്കുന്നതിന് Return ബട്ടൺ അമർത്തുക." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "പിന്നീട് വീണ്ടും ശ്രമിക്കുക." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "നിലവിലെ നെറ്റ്‌വർക്ക് സ്റ്റാറ്റസ് പരിശോധിക്കുക." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ഉപയോക്താവിനെ ആധികാരികമാക്കൽ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "സർട്ടിഫിക്കറ്റ് വിവരം" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "വെബ് അറിയിപ്പ്" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ആധികാരികമാക്കൽ ആവശ്യമാണ്." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ഈ സൈറ്റിനായുള്ള സുരക്ഷാ സർട്ടിഫിക്കറ്റുമായി ബന്ധപ്പെട്ട് പ്രശ്നങ്ങൾ ഉണ്ട്." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "അറിയിപ്പുകൾ കാണിക്കാൻ ഈ വെബ്‌സൈറ്റിനെ അനുവദിക്കുന്നു." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "മുൻഗണന ഓർമ്മിക്കുക." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ഉപയോക്തൃനാമം" + +msgid "COM_SID_PASSWORD" +msgstr "പാസ്​വേഡ്" + +msgid "COM_SID_OK" +msgstr "ഓകെ" + +msgid "SID_LOGIN" +msgstr "ലോഗിൻ ചെയ്യുക" + +msgid "COM_SID_CANCEL" +msgstr "റദ്ദാക്കുക" + +msgid "COM_SID_ALLOW" +msgstr "അനുവദി." + +msgid "COM_SID_DENY" +msgstr "നിരാക." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "എന്തെങ്കിലും അന്വേഷിച്ചതിന് <> ബട്ടൺ അമർത്തിപ്പിടിക്കുക." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> ന്റെ സ്വകാര്യതാ നയം അനുസരിച്ച് അതിന്റെ ശബ്ദ തിരിച്ചെടുക്കൽ സേവനം പ്രാപ്തമാക്കുന്നതിന് നിങ്ങളുടെ ഓഡിയോ <> എന്ന വിലാസത്തിലേക്ക് അയയ്ക്കും." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "നിങ്ങൾ അഭ്യർത്ഥിച്ച പേജ് കണ്ടെത്താനാവുന്നില്ല." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "അടയ്ക്കാൻ റിട്ടേൺ ബട്ടൺ അമർത്തുക." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "പിന്നീട് വീണ്ടും ശ്രമിക്കുക." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "നിലവിലെ നെറ്റ്‌വർക്ക് സ്റ്റാറ്റസ് പരിശോധിക്കുക." + +msgid "COM_SID_ERROR_CODE" msgstr "പിശക് കോഡ്" \ No newline at end of file diff --git a/wrt/resources/tv_locales/mn_MN.po b/wrt/resources/tv_locales/mn_MN.po index 513fb96..e0325c9 100755 --- a/wrt/resources/tv_locales/mn_MN.po +++ b/wrt/resources/tv_locales/mn_MN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Хэрэглэгч баталгаажуулах" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Гэрчилгээний мэдээлэл" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Вэб мэдэгдэл" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Баталгаажуулалт шаардлагатай." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Энэ сайтын аюулгүй байдлын гэрчилгээнд асуудал байна." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Энэ вэбсайтад мэдэгдлүүд харуулахыг зөвшөөрнө." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Сонголтыг сана." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Хэрэглэгчийн нэр" - -msgid "COM_SID_PASSWORD" -msgstr "Нууц үг" - -msgid "COM_SID_OK" -msgstr "ОК" - -msgid "SID_LOGIN" -msgstr "Нэвтрэх" - -msgid "COM_SID_CANCEL" -msgstr "Цуцлах" - -msgid "COM_SID_ALLOW" -msgstr "Зөвшөөрөх" - -msgid "COM_SID_DENY" -msgstr "Татгалзах" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Ямар нэгэн зүйл хайхын тулд <> товчийг удаан дар." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<>-н нууцлалын бодлогын дагуу яриа таних үйлчилгээг идэвхжүүлэхийн тулд таны аудиог <> руу илгээнэ." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Таны хүссэн хуудсыг олох боломжгүй." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Хаахын тулд Return товчийг дар." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Дараа дахин оролдоно уу." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Одоогийн сүлжээний төлөвийг шалга." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Хэрэглэгч баталгаажуулах" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Гэрчилгээний мэдээлэл" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Вэб мэдэгдэл" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Баталгаажуулалт шаардлагатай." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Энэ сайтын аюулгүй байдлын гэрчилгээнд асуудал байна." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Энэ вэбсайтад мэдэгдлүүд харуулахыг зөвшөөрнө." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Сонголтыг сана." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Хэрэглэгчийн нэр" + +msgid "COM_SID_PASSWORD" +msgstr "Нууц үг" + +msgid "COM_SID_OK" +msgstr "ОК" + +msgid "SID_LOGIN" +msgstr "Нэвтрэх" + +msgid "COM_SID_CANCEL" +msgstr "Цуцлах" + +msgid "COM_SID_ALLOW" +msgstr "Зөвшөөрөх" + +msgid "COM_SID_DENY" +msgstr "Татгалзах" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Ямар нэгэн зүйл хайхын тулд <> товчийг удаан дар." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<>-н нууцлалын бодлогын дагуу яриа таних үйлчилгээг идэвхжүүлэхийн тулд таны аудиог <> руу илгээнэ." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Таны хүссэн хуудсыг олох боломжгүй." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Хаахын тулд Буцах товчийг дар." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Дараа дахин оролдоно уу." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Одоогийн сүлжээний төлөвийг шалга." + +msgid "COM_SID_ERROR_CODE" msgstr "Алдааны код " \ No newline at end of file diff --git a/wrt/resources/tv_locales/mni_IN.po b/wrt/resources/tv_locales/mni_IN.po index c20d9ea..c18e604 100755 --- a/wrt/resources/tv_locales/mni_IN.po +++ b/wrt/resources/tv_locales/mni_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "য়ুজর ওথেন্টিকেসন" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "সার্টিফিকেৎ ইন্ফো" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ৱেব নোটিফিকেসন" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "চুম্মি হায়না তাকপা দরকার ওই." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "সাইট অসিগী সেক্যুরিটি সার্তিফিকেটতা সমস্যা খরা লৈ." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ৱেবসাইট অসিদা নোটিফিকেসনশিং উৎপা য়াহনবা." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "হেন্না পাম্বদু নিংশিংঙু." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "য়ুজরনেম" - -msgid "COM_SID_PASSWORD" -msgstr "পাসৱার্দ" - -msgid "COM_SID_OK" -msgstr "য়ারে" - -msgid "SID_LOGIN" -msgstr "লোগ ইন" - -msgid "COM_SID_CANCEL" -msgstr "ককথতলু" - -msgid "COM_SID_ALLOW" -msgstr "য়াহল্লু" - -msgid "COM_SID_DENY" -msgstr "য়াহনগনু" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "করিগুম্বা খরা থিনবগীদমক <> বতন দু পাইশল্লগা লৈয়ু অদুগা নম্মু." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> গী প্রাইভেসি পোলিসি গী মতুং ইন্না খোনজেল গী রীকোগনিশন সর্ভিস য়াহন্নবা নহাক্কি ওদিও দু <> দা থাগনি." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "নহাক্না পামলিবা পেজ অদু ফংদ্রে." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ক্লোজ তৌননবা Return বটনদু নম্মু৷" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "চানবীদুনা কোন্না অমুক পাংথোকপীয়ু." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "হৌজীককী নেতৱারক ইসতেতস চেক তৌ৷" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "য়ুজর ওথেন্টিকেসন" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "সার্টিফিকেৎ ইন্ফো" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ৱেব নোটিফিকেসন" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "চুম্মি হায়না তাকপা দরকার ওই." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "সাইট অসিগী সেক্যুরিটি সার্তিফিকেটতা সমস্যা খরা লৈ." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ৱেবসাইট অসিদা নোটিফিকেসনশিং উৎপা য়াহনবা." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "হেন্না পাম্বদু নিংশিংঙু." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "য়ুজরনেম" + +msgid "COM_SID_PASSWORD" +msgstr "পাসৱার্দ" + +msgid "COM_SID_OK" +msgstr "য়ারে" + +msgid "SID_LOGIN" +msgstr "লোগ ইন" + +msgid "COM_SID_CANCEL" +msgstr "ককথতলু" + +msgid "COM_SID_ALLOW" +msgstr "য়াহল্লু" + +msgid "COM_SID_DENY" +msgstr "য়াহনগনু" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "করিগুম্বা খরা থিনবগীদমক <> বতন দু পাইশল্লগা লৈয়ু অদুগা নম্মু." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> গী প্রাইভেসি পোলিসি গী মতুং ইন্না খোনজেল গী রীকোগনিশন সর্ভিস য়াহন্নবা নহাক্কি ওদিও দু <> দা থাগনি." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "নহাক্না পামলিবা পেজ অদু ফংদ্রে." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "খুমজন্নবা য়েত হল্লকপা বটন অদু নম্মু." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "চানবীদুনা কোন্না অমুক পাংথোকপীয়ু." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "হৌজীককী নেতৱারক ইসতেতস চেক তৌ৷" + +msgid "COM_SID_ERROR_CODE" msgstr "ইরর কোদ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/mr_IN.po b/wrt/resources/tv_locales/mr_IN.po index 7ac52d1..ccbf051 100755 --- a/wrt/resources/tv_locales/mr_IN.po +++ b/wrt/resources/tv_locales/mr_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "प्रयोक्ता प्रमाणीकरण" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "प्रमाणपत्र माहिती" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब अधिसूचना" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "अधिप्रमाणित आवश्यक." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "या साईटच्या सुरक्षा प्रमाणपत्रामध्ये समस्या आहेत." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "या वेबसाइटला अधिसूचना पाहण्याची अनुमती देते." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "पसंतीक्रम लक्षात ठेवा." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "वापरकर्ता नाव" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "ओके" - -msgid "SID_LOGIN" -msgstr "लॉगइन" - -msgid "COM_SID_CANCEL" -msgstr "रद्द करा" - -msgid "COM_SID_ALLOW" -msgstr "अनुमती द्या" - -msgid "COM_SID_DENY" -msgstr "नकार" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "काहीतरी शोधण्यासाठी <> बटण दाबून ठेवा." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<>च्या गोपनीयता धोरणानुसार आवाज ओळख सेवा सक्षम करण्यासाठी आपला ऑडिओ <> कडे पाठविला जाईल." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "आपण विनंती केलेले पृष्ठ शोधण्यात अक्षम." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बंद करण्यासाठी Return बटण दाबा." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "कृपया पुन्हा नंतर प्रयत्न करा." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "विद्यमान नेटवर्क स्थिती तपासा." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "प्रयोक्ता प्रमाणीकरण" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "प्रमाणपत्र माहिती" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब अधिसूचना" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "अधिप्रमाणित आवश्यक." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "या साईटच्या सुरक्षा प्रमाणपत्रामध्ये समस्या आहेत." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "या वेबसाइटला अधिसूचना पाहण्याची अनुमती देते." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "पसंतीक्रम लक्षात ठेवा." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "वापरकर्ता नाव" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "ओके" + +msgid "SID_LOGIN" +msgstr "लॉगइन" + +msgid "COM_SID_CANCEL" +msgstr "रद्द करा" + +msgid "COM_SID_ALLOW" +msgstr "अनुमती द्या" + +msgid "COM_SID_DENY" +msgstr "नकार" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "काहीतरी शोधण्यासाठी <> बटण दाबून ठेवा." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<>च्या गोपनीयता धोरणानुसार आवाज ओळख सेवा सक्षम करण्यासाठी आपला ऑडिओ <> कडे पाठविला जाईल." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "आपण विनंती केलेले पृष्ठ शोधण्यात अक्षम." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "बंद करण्यासाठी परत जा बटण दाबा." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "कृपया पुन्हा नंतर प्रयत्न करा." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "विद्यमान नेटवर्क स्थिती तपासा." + +msgid "COM_SID_ERROR_CODE" msgstr "त्रुटी कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ms_MY.po b/wrt/resources/tv_locales/ms_MY.po index 6fe781c..c17b493 100755 --- a/wrt/resources/tv_locales/ms_MY.po +++ b/wrt/resources/tv_locales/ms_MY.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Pengesahan Pengguna" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Maklumat sijil" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Pemberitahuan Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Pengesahan diperlukan." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Terdapat masalah dengan sijil keselamatan untuk tapak ini." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Membenarkan laman web ini untuk menunjukkan pemberitahuan." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Ingat keutamaan." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nama Pengguna" - -msgid "COM_SID_PASSWORD" -msgstr "Katalaluan" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "L.masuk" - -msgid "COM_SID_CANCEL" -msgstr "Batal" - -msgid "COM_SID_ALLOW" -msgstr "Benarkn" - -msgid "COM_SID_DENY" -msgstr "Tolak" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Tekan dan tahan butang <> untuk mencari sesuatu." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Audio anda akan dihantar kepada <> untuk mendayakan perkhidmatan pengecaman pertuturan mengikut dasar privasi <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Tidak menemui halaman yang anda minta." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Tekan butang Return untuk tutup." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Sila cuba lagi nanti." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Semak status rangkaian semasa." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Pengesahan Pengguna" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Maklumat sijil" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Pemberitahuan Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Pengesahan diperlukan." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Terdapat masalah dengan sijil keselamatan untuk tapak ini." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Membenarkan laman web ini untuk menunjukkan pemberitahuan." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Ingat keutamaan." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nama Pengguna" + +msgid "COM_SID_PASSWORD" +msgstr "Katalaluan" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "L.masuk" + +msgid "COM_SID_CANCEL" +msgstr "Batal" + +msgid "COM_SID_ALLOW" +msgstr "Benarkn" + +msgid "COM_SID_DENY" +msgstr "Tolak" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Tekan dan tahan butang <> untuk mencari sesuatu." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Audio anda akan dihantar kepada <> untuk mendayakan perkhidmatan pengecaman pertuturan mengikut dasar privasi <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Tidak menemui halaman yang anda minta." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Tekan butang Kembali untuk tutup." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Sila cuba lagi nanti." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Semak status rangkaian semasa." + +msgid "COM_SID_ERROR_CODE" msgstr "Kod Ralat" \ No newline at end of file diff --git a/wrt/resources/tv_locales/my_MM.po b/wrt/resources/tv_locales/my_MM.po index 0c212c0..b5c28d8 100755 --- a/wrt/resources/tv_locales/my_MM.po +++ b/wrt/resources/tv_locales/my_MM.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "အသုံးပြုသူ စစ်မှန်ကြောင်းအထောက်အထားသက်သေ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "တရား၀င်အထောက်အထား အချက်အလက်" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ဝက်ဘ် သတိပေးချက်" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "မှန်ကန်ရန် လိုအပ်ပါသည်။" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ဤဆိုဒ်အတွက် လုံခြုံရေးသက်သေဆိုင်ရာ ပြဿနာ ရှိနေပါသည်။" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ဤဝဘ်ဆိုဒ်မှ သတိပေးချက်များ ပြသခွင့်ရှိသည်။" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ပိုမိုနှစ်သက်သည့် အရာများကို မှတ်ထားပါ။" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "အသုံးပြုသူအမည်" - -msgid "COM_SID_PASSWORD" -msgstr "စကားဝှက်" - -msgid "COM_SID_OK" -msgstr "အိုကေ" - -msgid "SID_LOGIN" -msgstr "လော့အင်" - -msgid "COM_SID_CANCEL" -msgstr "ပယ်ဖျက်ပါ" - -msgid "COM_SID_ALLOW" -msgstr "ခွင့်ပြု၏" - -msgid "COM_SID_DENY" -msgstr "ငြင်းဆန်" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "တစ်စုံတစ်ခုကို ရှာဖွေရန် <> ခလုတ်ကို ဖိနှိပ်ထားပါ။" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> ၏ ကိုယ်ရေးမူဝါဒနှင့်အညီ ၎င်း၏ စကားပြောဝန်ဆောင်မှုကို ဖွင့်ရန် <> သို့ သင့်အသံကိုပို့ပေးပါလိမ့်မည်။" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "သင်တောင်းဆိုထားသော စာမျက်နှာအား မရှာဖွေနိုင်ပါ။" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ပိတ်ရန်အတွက် Return ခလုပ်ကို နှိပ်ပါ။" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "ကျေးဇူးပြုပြီး နောက်မှ ထက်မံကြိုးစားပါ။" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "လက်ရှိကွန်ရက်အခြေအနေကို စစ်ဆေးပါ။" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "အသုံးပြုသူ စစ်မှန်ကြောင်းအထောက်အထားသက်သေ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "တရား၀င်အထောက်အထား အချက်အလက်" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ဝက်ဘ် သတိပေးချက်" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "မှန်ကန်ရန် လိုအပ်ပါသည်။" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ဤဆိုဒ်အတွက် လုံခြုံရေးသက်သေဆိုင်ရာ ပြဿနာ ရှိနေပါသည်။" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ဤဝဘ်ဆိုဒ်မှ သတိပေးချက်များ ပြသခွင့်ရှိသည်။" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ပိုမိုနှစ်သက်သည့် အရာများကို မှတ်ထားပါ။" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "အသုံးပြုသူအမည်" + +msgid "COM_SID_PASSWORD" +msgstr "စကားဝှက်" + +msgid "COM_SID_OK" +msgstr "အိုကေ" + +msgid "SID_LOGIN" +msgstr "လော့အင်" + +msgid "COM_SID_CANCEL" +msgstr "ပယ်ဖျက်ပါ" + +msgid "COM_SID_ALLOW" +msgstr "ခွင့်ပြု၏" + +msgid "COM_SID_DENY" +msgstr "ငြင်းဆန်" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "တစ်စုံတစ်ခုကို ရှာဖွေရန် <> ခလုတ်ကို ဖိနှိပ်ထားပါ။" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> ၏ ကိုယ်ရေးမူဝါဒနှင့်အညီ ၎င်း၏ စကားပြောဝန်ဆောင်မှုကို ဖွင့်ရန် <> သို့ သင့်အသံကိုပို့ပေးပါလိမ့်မည်။" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "သင်တောင်းဆိုထားသော စာမျက်နှာအား မရှာဖွေနိုင်ပါ။" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ပိတ်ရန် ပြန်သွားပါ ခလုတ်ကို နှိပ်ပါ။" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "ကျေးဇူးပြုပြီး နောက်မှ ထက်မံကြိုးစားပါ။" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "လက်ရှိကွန်ရက်အခြေအနေကို စစ်ဆေးပါ။" + +msgid "COM_SID_ERROR_CODE" msgstr "အမှားကုဒ်" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ne_NP.po b/wrt/resources/tv_locales/ne_NP.po index 30fee96..64ed84f 100755 --- a/wrt/resources/tv_locales/ne_NP.po +++ b/wrt/resources/tv_locales/ne_NP.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "प्रयोगकर्ताको प्रमाणीकरण" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "प्रमाणपत्रसम्बन्धी जानकारी" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब सूचना" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "प्रमाणीकरण आवश्यक छ।" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "यो साइटका लागि सुरक्षा प्रमाणपत्रहरूमा समस्याहरू छन्।" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "यो वेबसाइटलाई सूचनाहरू देखाउने अनुमति दिन्छ।" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "प्राथमिकता याद राख्नुहोस्।" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "प्रयोगकर्ता नाम" - -msgid "COM_SID_PASSWORD" -msgstr "पासवर्ड" - -msgid "COM_SID_OK" -msgstr "हुन्छ" - -msgid "SID_LOGIN" -msgstr "लगइन गर्नुहोस्" - -msgid "COM_SID_CANCEL" -msgstr "रद्द गर्नुहोस्" - -msgid "COM_SID_ALLOW" -msgstr "अनुमति दिनु" - -msgid "COM_SID_DENY" -msgstr "अस्वीकार गर्नु" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "केही कुरा खोज्न <> बटन थिचेर होल्ड गर्नुहोस्।" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "तपाईंको अडियो <> को आवाज पहिचान सेवा सक्षम पार्ने प्रयोजनका लागि उसको गोपनीयता नीतिअनुकूल हुने गरी <> मा पठाइने छ।" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "तपाईंले अनुरोध गर्नुभएको पृष्ठ फेला पार्न सकिएन।" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बन्द गर्न Return बटन थिच्नुहोस्।" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "कृपया पछि पुन: प्रयास गर्नुहोस्।" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "हालको नेटवर्क स्थिति जाँच्नुहोस्।" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "प्रयोगकर्ताको प्रमाणीकरण" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "प्रमाणपत्रसम्बन्धी जानकारी" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब सूचना" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "प्रमाणीकरण आवश्यक छ।" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "यो साइटका लागि सुरक्षा प्रमाणपत्रहरूमा समस्याहरू छन्।" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "यो वेबसाइटलाई सूचनाहरू देखाउने अनुमति दिन्छ।" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "प्राथमिकता याद राख्नुहोस्।" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "प्रयोगकर्ता नाम" + +msgid "COM_SID_PASSWORD" +msgstr "पासवर्ड" + +msgid "COM_SID_OK" +msgstr "हुन्छ" + +msgid "SID_LOGIN" +msgstr "लगइन गर्नुहोस्" + +msgid "COM_SID_CANCEL" +msgstr "रद्द गर्नुहोस्" + +msgid "COM_SID_ALLOW" +msgstr "अनुमति दिनु" + +msgid "COM_SID_DENY" +msgstr "अस्वीकार गर्नु" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "केही कुरा खोज्न <> बटन थिचेर होल्ड गर्नुहोस्।" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "तपाईंको अडियो <> को आवाज पहिचान सेवा सक्षम पार्ने प्रयोजनका लागि उसको गोपनीयता नीतिअनुकूल हुने गरी <> मा पठाइने छ।" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "तपाईंले अनुरोध गर्नुभएको पृष्ठ फेला पार्न सकिएन।" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "बन्द गर्न फिर्ता बटन थिच्नुहोस्।" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "कृपया पछि पुन: प्रयास गर्नुहोस्।" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "हालको नेटवर्क स्थिति जाँच्नुहोस्।" + +msgid "COM_SID_ERROR_CODE" msgstr "कोड त्रुटि" \ No newline at end of file diff --git a/wrt/resources/tv_locales/nl_NL.po b/wrt/resources/tv_locales/nl_NL.po index eafe0a1..9ea48e8 100755 --- a/wrt/resources/tv_locales/nl_NL.po +++ b/wrt/resources/tv_locales/nl_NL.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Gebruikersverific." - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Certificaatgegevens" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webmelding" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Verificatie vereist." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Er zijn problemen met het beveiligingscertificaat voor deze website." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Meldingen van deze website toestaan." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Voorkeur onthouden." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Gebruikersnaam" - -msgid "COM_SID_PASSWORD" -msgstr "Toegangscode" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Aanmelden" - -msgid "COM_SID_CANCEL" -msgstr "Annuleren" - -msgid "COM_SID_ALLOW" -msgstr "Toestn" - -msgid "COM_SID_DENY" -msgstr "Weiger" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Houdt de knop <> ingedrukt als u naar iets wil zoeken." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Uw audio wordt verzonden naar <> om de spraakherkenningsservice van <> mogelijk te maken conform diens privacy-beleid." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Kan de aangevraagde pagina niet vinden." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Druk op de knop Return om te sluiten." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Probeer het later opnieuw." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Controleer de huidige netwerkstatus." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Gebruikersverific." + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Certificaatgegevens" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webmelding" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Verificatie vereist." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Er zijn problemen met het beveiligingscertificaat voor deze website." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Meldingen van deze website toestaan." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Voorkeur onthouden." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Gebruikersnaam" + +msgid "COM_SID_PASSWORD" +msgstr "Toegangscode" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Aanmelden" + +msgid "COM_SID_CANCEL" +msgstr "Annuleren" + +msgid "COM_SID_ALLOW" +msgstr "Toestn" + +msgid "COM_SID_DENY" +msgstr "Weiger" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Houdt de knop <> ingedrukt als u naar iets wil zoeken." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Uw audio wordt verzonden naar <> om de spraakherkenningsservice van <> mogelijk te maken conform diens privacy-beleid." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Kan de aangevraagde pagina niet vinden." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Druk op de knop 'Terug' om te sluiten." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Probeer het later opnieuw." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Controleer de huidige netwerkstatus." + +msgid "COM_SID_ERROR_CODE" msgstr "Foutcode" \ No newline at end of file diff --git a/wrt/resources/tv_locales/nn_NO.po b/wrt/resources/tv_locales/nn_NO.po index d1ad996..a33872b 100755 --- a/wrt/resources/tv_locales/nn_NO.po +++ b/wrt/resources/tv_locales/nn_NO.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Brukergodkjenning" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifikatinformasjon" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Nettvarsel" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Godkjenning kreves." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Det er problemer med sikkerhetssertifikatet for dette nettstedet." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Tillater at dette nettstedet viser varsler." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Husk preferanse." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Brukernavn" - -msgid "COM_SID_PASSWORD" -msgstr "Passord" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Pålogging" - -msgid "COM_SID_CANCEL" -msgstr "Avbryt" - -msgid "COM_SID_ALLOW" -msgstr "Tillat" - -msgid "COM_SID_DENY" -msgstr "Nekt" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Trykk og hold inne <>-knappen for å søke etter noe." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Lyden blir sendt til <> for å aktivere talegjenkjenningstjenesten i henhold til <>s personvernerklæring." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Kan ikke finne filen du ba om." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Trykk på knappen Return for å lukke." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Prøv igjen senere." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Kontroller gjeldende nettverksstatus." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Brukergodkjenning" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifikatinformasjon" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Nettvarsel" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Godkjenning kreves." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Det er problemer med sikkerhetssertifikatet for dette nettstedet." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Tillater at dette nettstedet viser varsler." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Husk preferanse." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Brukernavn" + +msgid "COM_SID_PASSWORD" +msgstr "Passord" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Pålogging" + +msgid "COM_SID_CANCEL" +msgstr "Avbryt" + +msgid "COM_SID_ALLOW" +msgstr "Tillat" + +msgid "COM_SID_DENY" +msgstr "Nekt" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Trykk og hold inne <>-knappen for å søke etter noe." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Lyden blir sendt til <> for å aktivere talegjenkjenningstjenesten i henhold til <>s personvernerklæring." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Kan ikke finne filen du ba om." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Trykk på tilbakeknappen for å lukke." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Prøv igjen senere." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Kontroller gjeldende nettverksstatus." + +msgid "COM_SID_ERROR_CODE" msgstr "Feilkode" \ No newline at end of file diff --git a/wrt/resources/tv_locales/or_IN.po b/wrt/resources/tv_locales/or_IN.po index cc5d784..be2968d 100755 --- a/wrt/resources/tv_locales/or_IN.po +++ b/wrt/resources/tv_locales/or_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ଉପଭୋକ୍ତାର ପ୍ରାମାଣିକରଣ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ସାର୍ଟିଫିକେଟ୍ ର ସୂଚନା" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ୱେବ୍ ର ବିଜ୍ଞପ୍ତି" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ପ୍ରାମାଣିକରଣ ଆବଶ୍ୟକ ହୋଇଛି." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ଏହି ସାଇଟ୍‌ ପାଇଁ ସୁରକ୍ଷା ସାର୍ଟିଫିକେଟ୍ ସହିତ ଏକ ସମସ୍ୟା ରହିଛି." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ଏହି ୱେବ୍ ସାଇଟ୍ କୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ପସନ୍ଦଗୁଡିକ ମନେରଖନ୍ତୁ." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ଉପଭୋକ୍ତା ନାମ" - -msgid "COM_SID_PASSWORD" -msgstr "ପାସ୍​ୱାର୍ଡ୍" - -msgid "COM_SID_OK" -msgstr "ଠିକ୍‌" - -msgid "SID_LOGIN" -msgstr "ଲଗ୍ଇନ୍" - -msgid "COM_SID_CANCEL" -msgstr "ବାତିଲ୍‌" - -msgid "COM_SID_ALLOW" -msgstr "ଅନୁମତି" - -msgid "COM_SID_DENY" -msgstr "ଅଗ୍ରାହ୍ୟ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "କିଛି ଖୋଜିବା ପାଇଁ <> ବଟନ୍‌ଟିକୁ ଦବାନ୍ତୁ ଏବଂ ଧରି ରଖନ୍ତୁ." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<>ର ଗୋପନୀୟତା ନୀତି ଅନୁସାରେ ତାର ସ୍ପିଚ୍ ଚିହ୍ନଟକରଣ ସେବାକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଆପଣଙ୍କ ଅଡିଓଟି <> କୁ ପଠାହେବ." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ଆପଣ ଅନୁରୋଧ କରିଥିବା ପୃଷ୍ଠାଟି ଖୋଜିବାରେ ଅସମର୍ଥ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ବନ୍ଦ କରିବାକୁ Return ବଟନ୍‌ ଦବାନ୍ତୁ." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "ଦୟାକରି ପରେ ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ବର୍ତ୍ତମାନ୍‌ ନେଟୱାର୍କ୍‌ ଅବସ୍ଥିତି ଚେକ୍‌ କରନ୍ତୁ." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ଉପଭୋକ୍ତାର ପ୍ରାମାଣିକରଣ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ସାର୍ଟିଫିକେଟ୍ ର ସୂଚନା" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ୱେବ୍ ର ବିଜ୍ଞପ୍ତି" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ପ୍ରାମାଣିକରଣ ଆବଶ୍ୟକ ହୋଇଛି." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ଏହି ସାଇଟ୍‌ ପାଇଁ ସୁରକ୍ଷା ସାର୍ଟିଫିକେଟ୍ ସହିତ ଏକ ସମସ୍ୟା ରହିଛି." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ଏହି ୱେବ୍ ସାଇଟ୍ କୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଦେଖାଇବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ପସନ୍ଦଗୁଡିକ ମନେରଖନ୍ତୁ." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ଉପଭୋକ୍ତା ନାମ" + +msgid "COM_SID_PASSWORD" +msgstr "ପାସ୍​ୱାର୍ଡ୍" + +msgid "COM_SID_OK" +msgstr "ଠିକ୍‌" + +msgid "SID_LOGIN" +msgstr "ଲଗ୍ଇନ୍" + +msgid "COM_SID_CANCEL" +msgstr "ବାତିଲ୍‌" + +msgid "COM_SID_ALLOW" +msgstr "ଅନୁମତି" + +msgid "COM_SID_DENY" +msgstr "ଅଗ୍ରାହ୍ୟ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "କିଛି ଖୋଜିବା ପାଇଁ <> ବଟନ୍‌ଟିକୁ ଦବାନ୍ତୁ ଏବଂ ଧରି ରଖନ୍ତୁ." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<>ର ଗୋପନୀୟତା ନୀତି ଅନୁସାରେ ତାର ସ୍ପିଚ୍ ଚିହ୍ନଟକରଣ ସେବାକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଆପଣଙ୍କ ଅଡିଓଟି <> କୁ ପଠାହେବ." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ଆପଣ ଅନୁରୋଧ କରିଥିବା ପୃଷ୍ଠାଟି ଖୋଜିବାରେ ଅସମର୍ଥ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ବନ୍ଦ କରିବାକୁ ଫେରିବା ବଟନ୍ ଦବାନ୍ତୁ." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "ଦୟାକରି ପରେ ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ବର୍ତ୍ତମାନ୍‌ ନେଟୱାର୍କ୍‌ ଅବସ୍ଥିତି ଚେକ୍‌ କରନ୍ତୁ." + +msgid "COM_SID_ERROR_CODE" msgstr "ତ୍ରୁଟି କୋଡ୍" \ No newline at end of file diff --git a/wrt/resources/tv_locales/pa_PK.po b/wrt/resources/tv_locales/pa_PK.po index f50d888..0af718d 100755 --- a/wrt/resources/tv_locales/pa_PK.po +++ b/wrt/resources/tv_locales/pa_PK.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ਉਪਯੋਗਕਰਤਾ ਪ੍ਰਮਾਣੀਕਰਣ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ਸਰਟੀਫਿਕੇਟ ਜਾਣਕਾਰੀ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ਵੈੱਬ ਸੂਚਨਾ" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ਪ੍ਰਮਾਣੀਕਰਨ ਲੋੜੀਂਦਾ।" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ਇਸ ਵੈਬਸਾਈਟ ਲਈ ਸੁਰੱਖਿਆ ਸਰਟੀਫਿਕੇਟ ਦੇ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਹਨ।" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ਇਸ ਵੈੱਬਸਾਈਟ ਨੂੰ ਸੂਚਨਾਵਾਂ ਦਿਖਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ।" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ਤਰਜੀਹ ਯਾਦ ਰੱਖੋ।" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ਉਪਯੋਗਕਰਤਾ ਨਾਮ" - -msgid "COM_SID_PASSWORD" -msgstr "ਪਾਸਵਰਡ" - -msgid "COM_SID_OK" -msgstr "ਠੀਕ ਹੈ" - -msgid "SID_LOGIN" -msgstr "ਲੌਗਇਨ" - -msgid "COM_SID_CANCEL" -msgstr "ਰੱਦ ਕਰੋ" - -msgid "COM_SID_ALLOW" -msgstr "ਇਜਾਜ਼ਤ" - -msgid "COM_SID_DENY" -msgstr "ਨਕਾਰੋ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "ਕਿਸੇ ਚੀਜ਼ ਦੀ ਖੋਜ ਕਰਨ ਲਈ <> ਬਟਨ ਨੂੰ ਦਬਾ ਕੇ ਰੱਖੋ।" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "ਤੁਹਾਡੀ ਆਡੀਓ ਦੀ ਆਵਾਜ਼ ਪਛਾਣ ਸੇਵਾ ਨੂੰ <> ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਦੇ ਅਨੁਸਾਰ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਇਹ <> ਨੂੰ ਭੇਜੀ ਜਾਵੇਗੀ।" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ਤੁਹਾਡੇ ਦੁਆਰਾ ਬੇਨਤੀ ਕੀਤਾ ਗਿਆ ਪੰਨਾ ਲੱਭਣ ਵਿੱਚ ਅਸਮਰਥ।" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ਬੰਦ ਕਰਨ ਲਈ Return ਬਟਨ ਦਬਾਓ।" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ਵਰਤਮਾਨ ਨੈਟਵਰਕ ਸਥਿਤੀ ਚੈਕ ਕਰੋ।" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ਉਪਯੋਗਕਰਤਾ ਪ੍ਰਮਾਣੀਕਰਣ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ਸਰਟੀਫਿਕੇਟ ਜਾਣਕਾਰੀ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ਵੈੱਬ ਸੂਚਨਾ" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ਪ੍ਰਮਾਣੀਕਰਨ ਲੋੜੀਂਦਾ।" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ਇਸ ਵੈਬਸਾਈਟ ਲਈ ਸੁਰੱਖਿਆ ਸਰਟੀਫਿਕੇਟ ਦੇ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਹਨ।" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ਇਸ ਵੈੱਬਸਾਈਟ ਨੂੰ ਸੂਚਨਾਵਾਂ ਦਿਖਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ।" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ਤਰਜੀਹ ਯਾਦ ਰੱਖੋ।" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ਉਪਯੋਗਕਰਤਾ ਨਾਮ" + +msgid "COM_SID_PASSWORD" +msgstr "ਪਾਸਵਰਡ" + +msgid "COM_SID_OK" +msgstr "ਠੀਕ ਹੈ" + +msgid "SID_LOGIN" +msgstr "ਲੌਗਇਨ" + +msgid "COM_SID_CANCEL" +msgstr "ਰੱਦ ਕਰੋ" + +msgid "COM_SID_ALLOW" +msgstr "ਇਜਾਜ਼ਤ" + +msgid "COM_SID_DENY" +msgstr "ਨਕਾਰੋ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "ਕਿਸੇ ਚੀਜ਼ ਦੀ ਖੋਜ ਕਰਨ ਲਈ <> ਬਟਨ ਨੂੰ ਦਬਾ ਕੇ ਰੱਖੋ।" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "ਤੁਹਾਡੀ ਆਡੀਓ ਦੀ ਆਵਾਜ਼ ਪਛਾਣ ਸੇਵਾ ਨੂੰ <> ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਦੇ ਅਨੁਸਾਰ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਇਹ <> ਨੂੰ ਭੇਜੀ ਜਾਵੇਗੀ।" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ਤੁਹਾਡੇ ਦੁਆਰਾ ਬੇਨਤੀ ਕੀਤਾ ਗਿਆ ਪੰਨਾ ਲੱਭਣ ਵਿੱਚ ਅਸਮਰਥ।" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ਬੰਦ ਕਰਨ ਲਈ ਵਾਪਸ ਬਟਨ ਨੂੰ ਦਬਾਓ।" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ਵਰਤਮਾਨ ਨੈਟਵਰਕ ਸਥਿਤੀ ਚੈਕ ਕਰੋ।" + +msgid "COM_SID_ERROR_CODE" msgstr "ਤਰੁੱਟੀ ਕੋਡ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/pl_PL.po b/wrt/resources/tv_locales/pl_PL.po index 05bc5c1..dc658b4 100755 --- a/wrt/resources/tv_locales/pl_PL.po +++ b/wrt/resources/tv_locales/pl_PL.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Uwierzytelnienie użytkownika" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informacje dotyczące certyfikatu" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Powiadomienie z sieci Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Wymagane uwierzytelnienie." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Wystąpiły problemy z certyfikatem zabezpieczeń witryny." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Zezwala tej stronie internetowej na wyświetlanie powiadomień." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Zapamiętaj ustawienia" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nazwa użytkownika" - -msgid "COM_SID_PASSWORD" -msgstr "Hasło" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Zaloguj" - -msgid "COM_SID_CANCEL" -msgstr "Anuluj" - -msgid "COM_SID_ALLOW" -msgstr "Zezwól" - -msgid "COM_SID_DENY" -msgstr "Odmów" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Naciśnij i przytrzymaj przycisk <>, aby coś wyszukać." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Twój plik dźwiękowy zostanie wysłany do <>, aby włączyć usługę rozpoznawania mowy zgodnie z polityką prywatności <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Nie można znaleźć żądanej strony." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Naciśnij przycisk Return, aby zamknąć ." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Spróbuj później." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Sprawdź bieżący stan sieci." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Uwierzytelnienie użytkownika" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informacje dotyczące certyfikatu" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Powiadomienie z sieci Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Wymagane uwierzytelnienie." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Wystąpiły problemy z certyfikatem zabezpieczeń witryny." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Zezwala tej stronie internetowej na wyświetlanie powiadomień." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Zapamiętaj ustawienia" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nazwa użytkownika" + +msgid "COM_SID_PASSWORD" +msgstr "Hasło" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Zaloguj" + +msgid "COM_SID_CANCEL" +msgstr "Anuluj" + +msgid "COM_SID_ALLOW" +msgstr "Zezwól" + +msgid "COM_SID_DENY" +msgstr "Odmów" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Naciśnij i przytrzymaj przycisk <>, aby coś wyszukać." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Twój plik dźwiękowy zostanie wysłany do <>, aby włączyć usługę rozpoznawania mowy zgodnie z polityką prywatności <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Nie można znaleźć żądanej strony." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Naciśnij przycisk Wróć, aby zamknąć." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Spróbuj później." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Sprawdź bieżący stan sieci." + +msgid "COM_SID_ERROR_CODE" msgstr "Kod błędu" \ No newline at end of file diff --git a/wrt/resources/tv_locales/pt_BR.po b/wrt/resources/tv_locales/pt_BR.po index 44903c2..b9f7a44 100755 --- a/wrt/resources/tv_locales/pt_BR.po +++ b/wrt/resources/tv_locales/pt_BR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autenticação do usuário" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informação de certificado" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notificação da Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Autenticação obrigatória." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Há problemas com o certificado de segurança desse site." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Permite que este site exiba notificações." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Lembrar preferência." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nome de Usuário" - -msgid "COM_SID_PASSWORD" -msgstr "Senha" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Cancelar" - -msgid "COM_SID_ALLOW" -msgstr "Perm." - -msgid "COM_SID_DENY" -msgstr "Negar" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Mantenha pressionado o botão <> para pesquisar algo." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "O áudio será enviado para <> para habilitar o serviço de reconhecimento de fala de acordo com a política de privacidade de <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Impossível encontrar a página que você solicitou." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Pressione o botão Return para fechar." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Tente novamente mais tarde." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Verifique o status de rede atual." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autenticação do usuário" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informação de certificado" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notificação da Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Autenticação obrigatória." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Há problemas com o certificado de segurança desse site." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Permite que este site exiba notificações." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Lembrar preferência." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nome de Usuário" + +msgid "COM_SID_PASSWORD" +msgstr "Senha" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Cancelar" + +msgid "COM_SID_ALLOW" +msgstr "Perm." + +msgid "COM_SID_DENY" +msgstr "Negar" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Mantenha pressionado o botão <> para pesquisar algo." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "O áudio será enviado para <> para habilitar o serviço de reconhecimento de fala de acordo com a política de privacidade de <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Impossível encontrar a página que você solicitou." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pressione o botão Retornar para fechar." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Tente novamente mais tarde." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Verifique o status de rede atual." + +msgid "COM_SID_ERROR_CODE" msgstr "Código de erro" \ No newline at end of file diff --git a/wrt/resources/tv_locales/pt_PT.po b/wrt/resources/tv_locales/pt_PT.po index c4fda75..c10d905 100755 --- a/wrt/resources/tv_locales/pt_PT.po +++ b/wrt/resources/tv_locales/pt_PT.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autent. do Utiliz." - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informações do certificado" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notificação Web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "É obrigatório efectuar a autenticação." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Ocorreram problemas com o certificado de segurança deste site." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Permite que este Web site mostre notificações." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Lembrar preferência." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nome util." - -msgid "COM_SID_PASSWORD" -msgstr "Palavra-passe" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Iniciar sessão" - -msgid "COM_SID_CANCEL" -msgstr "Cancelar" - -msgid "COM_SID_ALLOW" -msgstr "Permit." - -msgid "COM_SID_DENY" -msgstr "Recus." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Mantenha premido o botão <> para qualquer pesquisa." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "O seu ficheiro áudio será enviado para <>, de modo a ativar o respetivo serviço de reconhecimento de voz, nos termos da política de privacidade do <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Não é possível encontrar a página solicitada." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Prima o botão Return para fechar." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Volte a tentar mais tarde." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Verifique o estado de rede atual." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autent. do Utiliz." + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informações do certificado" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notificação Web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "É obrigatório efectuar a autenticação." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Ocorreram problemas com o certificado de segurança deste site." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Permite que este Web site mostre notificações." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Lembrar preferência." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nome util." + +msgid "COM_SID_PASSWORD" +msgstr "Palavra-passe" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Iniciar sessão" + +msgid "COM_SID_CANCEL" +msgstr "Cancelar" + +msgid "COM_SID_ALLOW" +msgstr "Permit." + +msgid "COM_SID_DENY" +msgstr "Recus." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Mantenha premido o botão <> para qualquer pesquisa." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "O seu ficheiro áudio será enviado para <>, de modo a ativar o respetivo serviço de reconhecimento de voz, nos termos da política de privacidade do <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Não é possível encontrar a página solicitada." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Prima o botão Regressar para fechar." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Volte a tentar mais tarde." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Verifique o estado de rede atual." + +msgid "COM_SID_ERROR_CODE" msgstr "Código de erro" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ro_RO.po b/wrt/resources/tv_locales/ro_RO.po index 80c86cf..d2bd3bb 100755 --- a/wrt/resources/tv_locales/ro_RO.po +++ b/wrt/resources/tv_locales/ro_RO.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autentificare utilizator" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informații certificat" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Notificare web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Este necesară autentificarea." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Există probleme legate de certificatul de securitate al acestui site web." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Permiteți acestui site web să afișeze notificări." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Rețineți preferința." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Nume de utilizator" - -msgid "COM_SID_PASSWORD" -msgstr "Parolă" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Conectare" - -msgid "COM_SID_CANCEL" -msgstr "Anulare" - -msgid "COM_SID_ALLOW" -msgstr "Permitere" - -msgid "COM_SID_DENY" -msgstr "Resping" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Apăsaţi şi menţineţi apăsat butonul <> pentru a căuta ceva." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Sunetul va fi trimis către <> pentru a-i permite să efectueze serviciul de recunoaştere vocală, în conformitate cu politica de confidenţialitate <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Pagina solicitată nu a putut fi găsită." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Apăsați butonul Return pentru a închide." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Încercați din nou mai târziu." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Verificați starea curentă a conexiunii la rețea." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autentificare utilizator" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informații certificat" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Notificare web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Este necesară autentificarea." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Există probleme legate de certificatul de securitate al acestui site web." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Permiteți acestui site web să afișeze notificări." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Rețineți preferința." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Nume de utilizator" + +msgid "COM_SID_PASSWORD" +msgstr "Parolă" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Conectare" + +msgid "COM_SID_CANCEL" +msgstr "Anulare" + +msgid "COM_SID_ALLOW" +msgstr "Permitere" + +msgid "COM_SID_DENY" +msgstr "Resping" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Apăsaţi şi menţineţi apăsat butonul <> pentru a căuta ceva." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Sunetul va fi trimis către <> pentru a-i permite să efectueze serviciul de recunoaştere vocală, în conformitate cu politica de confidenţialitate <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Pagina solicitată nu a putut fi găsită." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Apăsați butonul Revenire pentru a închide." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Încercați din nou mai târziu." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Verificați starea curentă a conexiunii la rețea." + +msgid "COM_SID_ERROR_CODE" msgstr "Cod eroare" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ru_RU.po b/wrt/resources/tv_locales/ru_RU.po index 14e9773f..ec79fc5 100755 --- a/wrt/resources/tv_locales/ru_RU.po +++ b/wrt/resources/tv_locales/ru_RU.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Пров. подл. польз." - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Данные сертификата" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Веб-уведомление" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Запрошена проверка подлинности." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Имеются проблемы с сертификатом безопасности этого сайта." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Разрешить сайту показывать уведомления." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Запомнить предпочтение." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Имя польз." - -msgid "COM_SID_PASSWORD" -msgstr "Пароль" - -msgid "COM_SID_OK" -msgstr "ОК" - -msgid "SID_LOGIN" -msgstr "Вход" - -msgid "COM_SID_CANCEL" -msgstr "Отмена" - -msgid "COM_SID_ALLOW" -msgstr "Разр." - -msgid "COM_SID_DENY" -msgstr "Запрет." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Для поиска нажмите и удерживайте кнопку <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ваша запись голоса будет отправлена напрямую в службу распознавания речи <> и будет обрабатываться в соответствии с политикой конфиденциальности <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Не удается найти запрошенную страницу." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Нажмите кнопку Return, чтобы закрыть." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Повторите попытку позже." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Проверка текущего состояния сети." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Пров. подл. польз." + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Данные сертификата" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Веб-уведомление" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Запрошена проверка подлинности." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Имеются проблемы с сертификатом безопасности этого сайта." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Разрешить сайту показывать уведомления." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Запомнить предпочтение." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Имя польз." + +msgid "COM_SID_PASSWORD" +msgstr "Пароль" + +msgid "COM_SID_OK" +msgstr "ОК" + +msgid "SID_LOGIN" +msgstr "Вход" + +msgid "COM_SID_CANCEL" +msgstr "Отмена" + +msgid "COM_SID_ALLOW" +msgstr "Разр." + +msgid "COM_SID_DENY" +msgstr "Запрет." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Для поиска нажмите и удерживайте кнопку <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ваша запись голоса будет отправлена напрямую в службу распознавания речи <> и будет обрабатываться в соответствии с политикой конфиденциальности <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Не удается найти запрошенную страницу." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Нажмите кнопку \"Возврат\", чтобы закрыть." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Повторите попытку позже." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Проверка текущего состояния сети." + +msgid "COM_SID_ERROR_CODE" msgstr "Код ошибки" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sa_IN.po b/wrt/resources/tv_locales/sa_IN.po index 11224a3..e3c96a0 100755 --- a/wrt/resources/tv_locales/sa_IN.po +++ b/wrt/resources/tv_locales/sa_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "प्रयोक्ता-प्रमाणीकरणम्‌" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "प्रमाणपत्र-सूचना" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब-संसूचना" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "सत्यापनं काङ्क्षितम्।" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "एतस्य साइट इत्यस्य सुरक्षा-प्रमाणपत्रे समस्याः वर्तन्ते।" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "वेब-संसूचनाः द्रष्टुं इदं वेबसाइट्‌ इत्येतत्‌ अनुमतिं ददाति।" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "वरीयतां स्मरतु।" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "प्रयोक्तृनाम" - -msgid "COM_SID_PASSWORD" -msgstr "कूटशब्दः" - -msgid "COM_SID_OK" -msgstr "अस्तु" - -msgid "SID_LOGIN" -msgstr "लॉग-इन करोतु" - -msgid "COM_SID_CANCEL" -msgstr "निरसयतु" - -msgid "COM_SID_ALLOW" -msgstr "अनुमतं ददातु" - -msgid "COM_SID_DENY" -msgstr "अस्वीकरोतु" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "नोदयतु तथा धारयतु <> पिञ्जं यद्किमपि अन्वेष्टम्।" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "भवतः आडियो प्रेषयिष्यते <> प्रति तस्य स्पीच् रिकग्निषन् सेवां <> इत्यस्य गोपनीयता-नीतिः सहा सशक्तिं कर्तुम्।" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "भवता अनुरोधितस्य पृष्ठस्यान्वेषणे असमर्थः।" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "पिधानाय Return इति पिञ्जं नोद्यताम्‌।" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "कृपया अनन्तरं पुनः प्रयततु।" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "वर्तमानजालकावस्थानं परीक्षणं करोतु।" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "प्रयोक्ता-प्रमाणीकरणम्‌" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "प्रमाणपत्र-सूचना" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब-संसूचना" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "सत्यापनं काङ्क्षितम्।" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "एतस्य साइट इत्यस्य सुरक्षा-प्रमाणपत्रे समस्याः वर्तन्ते।" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "वेब-संसूचनाः द्रष्टुं इदं वेबसाइट्‌ इत्येतत्‌ अनुमतिं ददाति।" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "वरीयतां स्मरतु।" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "प्रयोक्तृनाम" + +msgid "COM_SID_PASSWORD" +msgstr "कूटशब्दः" + +msgid "COM_SID_OK" +msgstr "अस्तु" + +msgid "SID_LOGIN" +msgstr "लॉग-इन करोतु" + +msgid "COM_SID_CANCEL" +msgstr "निरसयतु" + +msgid "COM_SID_ALLOW" +msgstr "अनुमतं ददातु" + +msgid "COM_SID_DENY" +msgstr "अस्वीकरोतु" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "नोदयतु तथा धारयतु <> पिञ्जं यद्किमपि अन्वेष्टम्।" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "भवतः आडियो प्रेषयिष्यते <> प्रति तस्य स्पीच् रिकग्निषन् सेवां <> इत्यस्य गोपनीयता-नीतिः सहा सशक्तिं कर्तुम्।" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "भवता अनुरोधितस्य पृष्ठस्यान्वेषणे असमर्थः।" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "पिधानाय निवर्तनं पिञ्जं नोदयतु।" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "कृपया अनन्तरं पुनः प्रयततु।" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "वर्तमानजालकावस्थानं परीक्षणं करोतु।" + +msgid "COM_SID_ERROR_CODE" msgstr "त्रूटि-कूटः" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sat_IN.po b/wrt/resources/tv_locales/sat_IN.po index e03c2be..da3053b 100755 --- a/wrt/resources/tv_locales/sat_IN.po +++ b/wrt/resources/tv_locales/sat_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ᱵᱮᱵᱷᱟᱨᱤᱜ ᱯᱚᱨᱢᱟᱱᱤᱛ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ᱯᱚᱨᱢᱟᱱᱥᱟᱠᱟᱢ ᱠᱷᱚᱵᱚᱨ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ᱣᱮᱵ ᱤᱥᱛᱤᱦᱟᱨ" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ᱧᱮᱞᱴᱤᱠ ᱫᱩᱨᱠᱟᱨᱟ." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ᱱᱩᱣᱟ ᱥᱟᱤᱴ ᱞᱟᱜᱤᱫ ᱥᱮᱠᱭᱩᱨᱤᱴᱤ ᱥᱟᱨᱴᱤᱯᱷᱤᱠᱮᱴ ᱵᱟᱲᱪ ᱢᱤᱱᱟᱠ ᱟᱽ." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ᱱᱚᱣᱟ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱫᱚ ᱤᱥᱛᱤᱦᱟᱨ ᱥᱚᱫᱚᱨ ᱞᱟᱜᱤᱫ ᱢᱟᱱᱟᱣ ᱢᱮ." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ᱫᱤᱥᱮ ᱫᱚ ᱦᱚ ᱞᱟᱦᱟ." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ᱵᱮᱵᱚᱦᱟᱨ ᱦᱚᱲᱟᱠ ᱧᱩᱛᱩᱢ" - -msgid "COM_SID_PASSWORD" -msgstr "ᱯᱟᱥᱣᱳᱨᱰ" - -msgid "COM_SID_OK" -msgstr "ᱴᱤᱠ" - -msgid "SID_LOGIN" -msgstr "ᱞᱚᱜ ᱤᱱ" - -msgid "COM_SID_CANCEL" -msgstr "ᱵᱟᱹᱥᱨᱟᱹ" - -msgid "COM_SID_ALLOW" -msgstr "ᱮᱞᱟᱣ" - -msgid "COM_SID_DENY" -msgstr "ᱰᱮᱱᱤ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "ᱡᱟᱦᱟᱱᱟᱜ ᱡᱤᱱᱤᱥ ᱥᱮᱱᱫᱨᱟ ᱞᱟᱜᱤᱫ <> ᱵᱚᱴᱚᱱ ᱩᱴᱟᱤ ᱰᱚᱦᱩᱤ ᱢᱮ." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "ᱟᱢᱟᱜ ᱚᱰᱤᱭᱳ ᱫᱚ <> ᱨᱮᱭᱟᱜ ᱩᱠᱩ ᱯᱳᱞᱤᱥᱤ ᱞᱮᱠᱟ ᱛᱮ ᱟᱢᱟᱜ ᱵᱷᱟᱥᱚᱞ ᱮ ᱯᱚᱪᱷᱱᱟᱣ ᱥᱮᱣᱟ ᱥᱚᱠᱪᱷᱚᱢ ᱞᱟᱜᱤᱫ <> ᱴᱮᱱ ᱮ ᱠᱩᱞᱟ." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ᱟᱢ ᱫᱟᱨᱟᱭ ᱛᱮ ᱱᱮᱦᱚᱨ ᱟᱠᱟᱫ ᱥᱟᱠᱟᱢ ᱫᱚ ᱵᱟᱝ ᱛᱚᱞᱟᱥ ᱫᱟᱲᱤᱟᱫᱟ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ᱩᱛᱟᱭ ᱢᱮ Return ᱵᱚᱴᱚᱱ ᱵᱟᱱᱫᱚᱭ ᱞᱟᱜᱤᱫ." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "ᱱᱮᱦᱚᱨ ᱯᱚᱨᱮ ᱨᱮ ᱫᱚᱦᱚᱲᱟᱭ ᱢᱮ." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ᱱᱤᱛᱚᱜᱟᱜ ᱱᱮᱴᱣᱟᱨᱠ ᱫᱚᱥᱟ ᱧᱮᱞ ᱢᱮᱹ" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ᱵᱮᱵᱷᱟᱨᱤᱜ ᱯᱚᱨᱢᱟᱱᱤᱛ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ᱯᱚᱨᱢᱟᱱᱥᱟᱠᱟᱢ ᱠᱷᱚᱵᱚᱨ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ᱣᱮᱵ ᱤᱥᱛᱤᱦᱟᱨ" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ᱧᱮᱞᱴᱤᱠ ᱫᱩᱨᱠᱟᱨᱟ." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ᱱᱩᱣᱟ ᱥᱟᱤᱴ ᱞᱟᱜᱤᱫ ᱥᱮᱠᱭᱩᱨᱤᱴᱤ ᱥᱟᱨᱴᱤᱯᱷᱤᱠᱮᱴ ᱵᱟᱲᱪ ᱢᱤᱱᱟᱠ ᱟᱽ." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ᱱᱚᱣᱟ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱫᱚ ᱤᱥᱛᱤᱦᱟᱨ ᱥᱚᱫᱚᱨ ᱞᱟᱜᱤᱫ ᱢᱟᱱᱟᱣ ᱢᱮ." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ᱫᱤᱥᱮ ᱫᱚ ᱦᱚ ᱞᱟᱦᱟ." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ᱵᱮᱵᱚᱦᱟᱨ ᱦᱚᱲᱟᱠ ᱧᱩᱛᱩᱢ" + +msgid "COM_SID_PASSWORD" +msgstr "ᱯᱟᱥᱣᱳᱨᱰ" + +msgid "COM_SID_OK" +msgstr "ᱴᱤᱠ" + +msgid "SID_LOGIN" +msgstr "ᱞᱚᱜ ᱤᱱ" + +msgid "COM_SID_CANCEL" +msgstr "ᱵᱟᱹᱥᱨᱟᱹ" + +msgid "COM_SID_ALLOW" +msgstr "ᱮᱞᱟᱣ" + +msgid "COM_SID_DENY" +msgstr "ᱰᱮᱱᱤ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "ᱡᱟᱦᱟᱱᱟᱜ ᱡᱤᱱᱤᱥ ᱥᱮᱱᱫᱨᱟ ᱞᱟᱜᱤᱫ <> ᱵᱚᱴᱚᱱ ᱩᱴᱟᱤ ᱰᱚᱦᱩᱤ ᱢᱮ." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "ᱟᱢᱟᱜ ᱚᱰᱤᱭᱳ ᱫᱚ <> ᱨᱮᱭᱟᱜ ᱩᱠᱩ ᱯᱳᱞᱤᱥᱤ ᱞᱮᱠᱟ ᱛᱮ ᱟᱢᱟᱜ ᱵᱷᱟᱥᱚᱞ ᱮ ᱯᱚᱪᱷᱱᱟᱣ ᱥᱮᱣᱟ ᱥᱚᱠᱪᱷᱚᱢ ᱞᱟᱜᱤᱫ <> ᱴᱮᱱ ᱮ ᱠᱩᱞᱟ." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ᱟᱢ ᱫᱟᱨᱟᱭ ᱛᱮ ᱱᱮᱦᱚᱨ ᱟᱠᱟᱫ ᱥᱟᱠᱟᱢ ᱫᱚ ᱵᱟᱝ ᱛᱚᱞᱟᱥ ᱫᱟᱲᱤᱟᱫᱟ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ᱵᱚᱱᱫᱚᱭ ᱞᱟᱜᱤᱫ ᱨᱩᱣᱟᱹᱲ ᱵᱚᱴᱚᱱ ᱩᱛᱟᱭ ᱢᱮ." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "ᱱᱮᱦᱚᱨ ᱯᱚᱨᱮ ᱨᱮ ᱫᱚᱦᱚᱲᱟᱭ ᱢᱮ." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ᱱᱤᱛᱚᱜᱟᱜ ᱱᱮᱴᱣᱟᱨᱠ ᱫᱚᱥᱟ ᱧᱮᱞ ᱢᱮᱹ" + +msgid "COM_SID_ERROR_CODE" msgstr "ᱵᱟᱬᱤᱪ ᱠᱚᱰ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sd_IN.po b/wrt/resources/tv_locales/sd_IN.po index afc3ad2..42f696f 100755 --- a/wrt/resources/tv_locales/sd_IN.po +++ b/wrt/resources/tv_locales/sd_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "वापरींदड़ जी अख्तियारी" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "दस्तावेज जाण" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "वेब इत्तला" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "मंजूरी जी ज़रूरत आहे." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "हिन साइट ते सिक्‍युरिटी सर्टिफिकेट जी परेशानी पेश थी रही आ." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "हिन वेबसाइट खे इत्तलाऊं देखारण द्यो." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "पहिरियूं शयूं याद रखो." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "वापरींदड़ जो नालो" - -msgid "COM_SID_PASSWORD" -msgstr "गु॒झो लफजु" - -msgid "COM_SID_OK" -msgstr "चङो" - -msgid "SID_LOGIN" -msgstr "घुरणु" - -msgid "COM_SID_CANCEL" -msgstr "रद्द" - -msgid "COM_SID_ALLOW" -msgstr "मोकल" - -msgid "COM_SID_DENY" -msgstr "जबाबु डि॒अणु" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "कुज गोल्हण लाए <> बटण दबाए झले रखो." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> जी निजी नीती जे मुताबिक ऑडियो जी आवाजी सुञाणप जी सेवा चालू करण लाए इहो <> वट मोकल्यो वेंदो." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "तव्हांजे गुज़ारिश कयलु पेज खे गोल्हण में नाकाम." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "बंद करण लाए Return बटण दबायो." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "मेहरबानी करे पोइ वरी कोशिश कयो." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "हाणोके नेटवर्क जी हालत चकासो." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "वापरींदड़ जी अख्तियारी" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "दस्तावेज जाण" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "वेब इत्तला" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "मंजूरी जी ज़रूरत आहे." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "हिन साइट ते सिक्‍युरिटी सर्टिफिकेट जी परेशानी पेश थी रही आ." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "हिन वेबसाइट खे इत्तलाऊं देखारण द्यो." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "पहिरियूं शयूं याद रखो." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "वापरींदड़ जो नालो" + +msgid "COM_SID_PASSWORD" +msgstr "गु॒झो लफजु" + +msgid "COM_SID_OK" +msgstr "चङो" + +msgid "SID_LOGIN" +msgstr "घुरणु" + +msgid "COM_SID_CANCEL" +msgstr "रद्द" + +msgid "COM_SID_ALLOW" +msgstr "मोकल" + +msgid "COM_SID_DENY" +msgstr "जबाबु डि॒अणु" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "कुज गोल्हण लाए <> बटण दबाए झले रखो." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> जी निजी नीती जे मुताबिक ऑडियो जी आवाजी सुञाणप जी सेवा चालू करण लाए इहो <> वट मोकल्यो वेंदो." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "तव्हांजे गुज़ारिश कयलु पेज खे गोल्हण में नाकाम." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "बंद करण लाए वरणु बटण दबायो." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "मेहरबानी करे पोइ वरी कोशिश कयो." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "हाणोके नेटवर्क जी हालत चकासो." + +msgid "COM_SID_ERROR_CODE" msgstr "गलत कोड" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sk_SK.po b/wrt/resources/tv_locales/sk_SK.po index 6e7e3ea..8c7aef7 100755 --- a/wrt/resources/tv_locales/sk_SK.po +++ b/wrt/resources/tv_locales/sk_SK.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Overenie používateľa" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informácie o certifikáte" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webové oznámenie" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Vyžaduje sa autentifikácia." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "S bezpečnostným certifikátom pre túto stránku sa vyskytli problémy." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Umožňuje zobrazovanie oznámení na tejto webovej stránke." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Zapamätať preferenciu." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Používateľské meno" - -msgid "COM_SID_PASSWORD" -msgstr "Heslo" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Prihlásiť sa" - -msgid "COM_SID_CANCEL" -msgstr "Zrušiť" - -msgid "COM_SID_ALLOW" -msgstr "Povoliť" - -msgid "COM_SID_DENY" -msgstr "Zamiet." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Ak chcete niečo vyhľadať, stlačte a podržte tlačidlo <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Vaša zvuková nahrávka sa odošle spoločnosti <> na aktiváciu služby rozpoznávania hlasu v súlade s ochranou osobných údajov spoločnosti <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Požadovanú stránku nie je možné nájsť." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Zatvorte stlačením tlačidla Return (Návrat)." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Skúste znovu neskôr." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Skontrolujte aktuálny stav siete." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Overenie používateľa" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informácie o certifikáte" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webové oznámenie" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Vyžaduje sa autentifikácia." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "S bezpečnostným certifikátom pre túto stránku sa vyskytli problémy." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Umožňuje zobrazovanie oznámení na tejto webovej stránke." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Zapamätať preferenciu." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Používateľské meno" + +msgid "COM_SID_PASSWORD" +msgstr "Heslo" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Prihlásiť sa" + +msgid "COM_SID_CANCEL" +msgstr "Zrušiť" + +msgid "COM_SID_ALLOW" +msgstr "Povoliť" + +msgid "COM_SID_DENY" +msgstr "Zamiet." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Ak chcete niečo vyhľadať, stlačte a podržte tlačidlo <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Vaša zvuková nahrávka sa odošle spoločnosti <> na aktiváciu služby rozpoznávania hlasu v súlade s ochranou osobných údajov spoločnosti <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Požadovanú stránku nie je možné nájsť." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Stlačením tlačidla Späť vykonáte zatvorenie." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Skúste znovu neskôr." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Skontrolujte aktuálny stav siete." + +msgid "COM_SID_ERROR_CODE" msgstr "Kód chyby" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sl_SI.po b/wrt/resources/tv_locales/sl_SI.po index 1cb38f2..4090b01 100755 --- a/wrt/resources/tv_locales/sl_SI.po +++ b/wrt/resources/tv_locales/sl_SI.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Preverjanje pristnosti uporabnika" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informacije o potrdilu" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Spletno obvestilo" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Potrebno je preverjanje pristnosti." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Prišlo je do težav z varnostnim certifikatom tega spletnega mesta." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Temu spletnemu mestu omogoča pošiljanje obvestil." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Zapomni si izbrano." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Uporabniško ime" - -msgid "COM_SID_PASSWORD" -msgstr "Geslo" - -msgid "COM_SID_OK" -msgstr "V redu." - -msgid "SID_LOGIN" -msgstr "Prijava" - -msgid "COM_SID_CANCEL" -msgstr "Prekliči" - -msgid "COM_SID_ALLOW" -msgstr "Dovoli." - -msgid "COM_SID_DENY" -msgstr "Zavrni." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Če želite kaj poiskati, pritisnite in pridržite gumb <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "V skladu s pravilnikom o zasebnosti podjetja <> bo vaš zvok poslan podjetju <> za namen uporabe njegove storitve za prepoznavanje govora." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Ni mogoče najti zahtevane strani." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Za zapiranje pritisnite gumb Return." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Poskusite znova pozneje." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Preverite trenutno stanje omrežja." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Preverjanje pristnosti uporabnika" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informacije o potrdilu" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Spletno obvestilo" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Potrebno je preverjanje pristnosti." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Prišlo je do težav z varnostnim certifikatom tega spletnega mesta." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Temu spletnemu mestu omogoča pošiljanje obvestil." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Zapomni si izbrano." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Uporabniško ime" + +msgid "COM_SID_PASSWORD" +msgstr "Geslo" + +msgid "COM_SID_OK" +msgstr "V redu." + +msgid "SID_LOGIN" +msgstr "Prijava" + +msgid "COM_SID_CANCEL" +msgstr "Prekliči" + +msgid "COM_SID_ALLOW" +msgstr "Dovoli." + +msgid "COM_SID_DENY" +msgstr "Zavrni." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Če želite kaj poiskati, pritisnite in pridržite gumb <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "V skladu s pravilnikom o zasebnosti podjetja <> bo vaš zvok poslan podjetju <> za namen uporabe njegove storitve za prepoznavanje govora." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Ni mogoče najti zahtevane strani." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Če želite zapreti, pritisnite gumb Nazaj." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Poskusite znova pozneje." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Preverite trenutno stanje omrežja." + +msgid "COM_SID_ERROR_CODE" msgstr "Koda napake" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sq_AL.po b/wrt/resources/tv_locales/sq_AL.po index 4e5878f..bf73abf 100755 --- a/wrt/resources/tv_locales/sq_AL.po +++ b/wrt/resources/tv_locales/sq_AL.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autentikimi i përdoruesit" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informacioni i certifikatës" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Njoftim nga interneti" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Kërkohet autentikim." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Ka probleme me certifikatën e sigurisë së kësaj faqeje." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "I lejon kësaj faqeje të shfaqë njoftime." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Mbaje mend preferencën." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Emri i përdoruesit" - -msgid "COM_SID_PASSWORD" -msgstr "Fjalëkal." - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Lidhu" - -msgid "COM_SID_CANCEL" -msgstr "Anulo" - -msgid "COM_SID_ALLOW" -msgstr "Lejo" - -msgid "COM_SID_DENY" -msgstr "Ref." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Shtypni dhe e mbani të shtypur butonin \"<>\" për të bërë një kërkim." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Zëri juaj do t'i dërgohet \"<>\" për të përdorur shërbimin e tij të njohjes së zërit në përputhje me rregulloren e privatësisë së \"<>\"." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Faqja që kërkove nuk gjendet." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Shtyp butonin \"Return\" për ta mbyllur." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Provo sërish më vonë." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Kontrollo statusin aktual të rrjetit." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autentikimi i përdoruesit" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informacioni i certifikatës" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Njoftim nga interneti" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Kërkohet autentikim." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Ka probleme me certifikatën e sigurisë së kësaj faqeje." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "I lejon kësaj faqeje të shfaqë njoftime." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Mbaje mend preferencën." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Emri i përdoruesit" + +msgid "COM_SID_PASSWORD" +msgstr "Fjalëkal." + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Lidhu" + +msgid "COM_SID_CANCEL" +msgstr "Anulo" + +msgid "COM_SID_ALLOW" +msgstr "Lejo" + +msgid "COM_SID_DENY" +msgstr "Ref." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Shtypni dhe e mbani të shtypur butonin \"<>\" për të bërë një kërkim." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Zëri juaj do t'i dërgohet \"<>\" për të përdorur shërbimin e tij të njohjes së zërit në përputhje me rregulloren e privatësisë së \"<>\"." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Faqja që kërkove nuk gjendet." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Shtypni butonin Rikthim për të mbyllur." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Provo sërish më vonë." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Kontrollo statusin aktual të rrjetit." + +msgid "COM_SID_ERROR_CODE" msgstr "Gabim në kod" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sr_RS.po b/wrt/resources/tv_locales/sr_RS.po index 6b2694f..02e8582 100755 --- a/wrt/resources/tv_locales/sr_RS.po +++ b/wrt/resources/tv_locales/sr_RS.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Provera identiteta korisnika" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Informacije o certifikatu" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Veb obaveštenje" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Potrebna je provera identiteta." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Postoje problemi sa bezbednosnim certifikatom za ovu lokaciju." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Omogućava ovoj veb lokaciji da prikazuje obaveštenja." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Zapamti željenu opciju." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Korisničko ime" - -msgid "COM_SID_PASSWORD" -msgstr "Lozinka" - -msgid "COM_SID_OK" -msgstr "U redu" - -msgid "SID_LOGIN" -msgstr "Prij. se" - -msgid "COM_SID_CANCEL" -msgstr "Otkaži" - -msgid "COM_SID_ALLOW" -msgstr "Omogući" - -msgid "COM_SID_DENY" -msgstr "Odbaci" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Za pretraživanje pritisnite i držite dugme <>." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Vaš audio zapis će biti poslat <> kako bi se omogućila usluga prepoznavanja govora u skladu sa politikom privatnosti <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Stranica koju ste zahtevali nije pronađena." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Pritisnite dugme Return da biste zatvorili." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Pokušajte opet kasnije." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Proverite trenutni status mreže." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Provera identiteta korisnika" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Informacije o certifikatu" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Veb obaveštenje" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Potrebna je provera identiteta." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Postoje problemi sa bezbednosnim certifikatom za ovu lokaciju." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Omogućava ovoj veb lokaciji da prikazuje obaveštenja." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Zapamti željenu opciju." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Korisničko ime" + +msgid "COM_SID_PASSWORD" +msgstr "Lozinka" + +msgid "COM_SID_OK" +msgstr "U redu" + +msgid "SID_LOGIN" +msgstr "Prij. se" + +msgid "COM_SID_CANCEL" +msgstr "Otkaži" + +msgid "COM_SID_ALLOW" +msgstr "Omogući" + +msgid "COM_SID_DENY" +msgstr "Odbaci" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Za pretraživanje pritisnite i držite dugme <>." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Vaš audio zapis će biti poslat <> kako bi se omogućila usluga prepoznavanja govora u skladu sa politikom privatnosti <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Stranica koju ste zahtevali nije pronađena." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pritisnite dugme „Nazad“ da biste zatvorili." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Pokušajte opet kasnije." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Proverite trenutni status mreže." + +msgid "COM_SID_ERROR_CODE" msgstr "Kôd greške" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sv_SE.po b/wrt/resources/tv_locales/sv_SE.po index d4bb264..fec423a 100755 --- a/wrt/resources/tv_locales/sv_SE.po +++ b/wrt/resources/tv_locales/sv_SE.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Användaraut." - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Certifikatinformation" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Webbmeddelande" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Autentisering krävs." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Det har uppstått problem med den här webbplatsens säkerhetscertifikat." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Tillåt att den här webbplatsen visar meddelanden." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Kom ihåg inställning." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Anv.namn" - -msgid "COM_SID_PASSWORD" -msgstr "Lösenord" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Logga in" - -msgid "COM_SID_CANCEL" -msgstr "Avbryt" - -msgid "COM_SID_ALLOW" -msgstr "Tillåt" - -msgid "COM_SID_DENY" -msgstr "Neka" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Tryck och håll ned knappen <> när du vill söka efter något." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Din ljudinspelning skickas till <> så att röstigenkänningstjänsten kan aktiveras i enlighet med <>:s gällande sekretess." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Sidan du begärde kan inte hittas." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Tryck på knappen Return för att stänga." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Försök igen senare." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Kontrollera aktuell nätverksstatus." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Användaraut." + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Certifikatinformation" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Webbmeddelande" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Autentisering krävs." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Det har uppstått problem med den här webbplatsens säkerhetscertifikat." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Tillåt att den här webbplatsen visar meddelanden." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Kom ihåg inställning." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Anv.namn" + +msgid "COM_SID_PASSWORD" +msgstr "Lösenord" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Logga in" + +msgid "COM_SID_CANCEL" +msgstr "Avbryt" + +msgid "COM_SID_ALLOW" +msgstr "Tillåt" + +msgid "COM_SID_DENY" +msgstr "Neka" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Tryck och håll ned knappen <> när du vill söka efter något." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Din ljudinspelning skickas till <> så att röstigenkänningstjänsten kan aktiveras i enlighet med <>:s gällande sekretess." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Sidan du begärde kan inte hittas." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Tryck på knappen Tillbaka för att stänga." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Försök igen senare." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Kontrollera aktuell nätverksstatus." + +msgid "COM_SID_ERROR_CODE" msgstr "Felkod" \ No newline at end of file diff --git a/wrt/resources/tv_locales/sw_KE.po b/wrt/resources/tv_locales/sw_KE.po index 60b7982..7eb0a79 100755 --- a/wrt/resources/tv_locales/sw_KE.po +++ b/wrt/resources/tv_locales/sw_KE.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Uthibitishaji wa Mtumiaji" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Maelezo ya cheti" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Arifa ya wavuti" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Uidhinishaji unahitajika." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Kuna matatizo kwenye cheti cha usalama cha tovuti hii." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Huruhusu tovuti hii kuonyesha arifa." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Kumbuka pendeleo." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Jina la Mtumiaji" - -msgid "COM_SID_PASSWORD" -msgstr "Nywila" - -msgid "COM_SID_OK" -msgstr "Sawa" - -msgid "SID_LOGIN" -msgstr "Ingia" - -msgid "COM_SID_CANCEL" -msgstr "Katisha" - -msgid "COM_SID_ALLOW" -msgstr "Ruhusu" - -msgid "COM_SID_DENY" -msgstr "Kataa" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Bonyeza na ushikilie kitufe cha <> ili utafute kitu." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Sauti yako itatumwa kwa <> ili kuwezesha huduma ya utambuzi wa usemi kulingana na sera ya faragha ya <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Imeshindwa kupata ukurasa uliouomba." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Bonyeza kitufe cha Return kufunga." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Tafadhali jaribu tena baadaye." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Kagua hali ya mtandao ya sasa hivi." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Uthibitishaji wa Mtumiaji" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Maelezo ya cheti" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Arifa ya wavuti" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Uidhinishaji unahitajika." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Kuna matatizo kwenye cheti cha usalama cha tovuti hii." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Huruhusu tovuti hii kuonyesha arifa." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Kumbuka pendeleo." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Jina la Mtumiaji" + +msgid "COM_SID_PASSWORD" +msgstr "Nywila" + +msgid "COM_SID_OK" +msgstr "Sawa" + +msgid "SID_LOGIN" +msgstr "Ingia" + +msgid "COM_SID_CANCEL" +msgstr "Katisha" + +msgid "COM_SID_ALLOW" +msgstr "Ruhusu" + +msgid "COM_SID_DENY" +msgstr "Kataa" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Bonyeza na ushikilie kitufe cha <> ili utafute kitu." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Sauti yako itatumwa kwa <> ili kuwezesha huduma ya utambuzi wa usemi kulingana na sera ya faragha ya <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Imeshindwa kupata ukurasa uliouomba." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Bonyeza kitufe Rudi ili kufunga." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Tafadhali jaribu tena baadaye." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Kagua hali ya mtandao ya sasa hivi." + +msgid "COM_SID_ERROR_CODE" msgstr "Msimbo wa kosa" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ta_IN.po b/wrt/resources/tv_locales/ta_IN.po index 4d6eca6..11b514e 100755 --- a/wrt/resources/tv_locales/ta_IN.po +++ b/wrt/resources/tv_locales/ta_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "பயனர் அங்கீகரிப்பு" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "சான்றிதழ் தகவல்" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "வலை அறிவிப்பு" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "அங்கீகாரம் தேவை." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "இந்த தளத்துக்கான பாதுகாப்புச் சான்றிதழில் சிக்கல்கள் உள்ளன." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "அறிவிப்புகளைக் காட்ட, இந்த வலைத்தளத்தை அனுமதிக்கிறது." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "விருப்பத்தை நினைவில்கொள்." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "பயனர் பெயர்" - -msgid "COM_SID_PASSWORD" -msgstr "பாஸ்வேர்டு" - -msgid "COM_SID_OK" -msgstr "ஆம்" - -msgid "SID_LOGIN" -msgstr "உள்நுழை" - -msgid "COM_SID_CANCEL" -msgstr "ரத்து" - -msgid "COM_SID_ALLOW" -msgstr "அனுமதி" - -msgid "COM_SID_DENY" -msgstr "மறுதலி" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "எதையேனும் தேட, <> பட்டனை அழுத்திப் பிடிக்கவும்." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<>-இன் தனியுரிமைக் கொள்கைக்கு இணங்க, பேச்சு கண்டறிதல் சேவையை இயக்குவதற்காக உங்கள் ஆடியோ <>-க்கு அனுப்பப்படும்." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "நீங்கள் கோரிய பக்கத்தைக் கண்டறிய முடியவில்லை." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "மூடுவதற்கு Return பட்டனை அழுத்தவும்." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "பின்னர் மீண்டும் முயலவும்." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "நடப்பு நெட்வொர்க் நிலையை சரிபார்க்கவும்." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "பயனர் அங்கீகரிப்பு" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "சான்றிதழ் தகவல்" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "வலை அறிவிப்பு" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "அங்கீகாரம் தேவை." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "இந்த தளத்துக்கான பாதுகாப்புச் சான்றிதழில் சிக்கல்கள் உள்ளன." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "அறிவிப்புகளைக் காட்ட, இந்த வலைத்தளத்தை அனுமதிக்கிறது." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "விருப்பத்தை நினைவில்கொள்." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "பயனர் பெயர்" + +msgid "COM_SID_PASSWORD" +msgstr "பாஸ்வேர்டு" + +msgid "COM_SID_OK" +msgstr "ஆம்" + +msgid "SID_LOGIN" +msgstr "உள்நுழை" + +msgid "COM_SID_CANCEL" +msgstr "ரத்து" + +msgid "COM_SID_ALLOW" +msgstr "அனுமதி" + +msgid "COM_SID_DENY" +msgstr "மறுதலி" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "எதையேனும் தேட, <> பட்டனை அழுத்திப் பிடிக்கவும்." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<>-இன் தனியுரிமைக் கொள்கைக்கு இணங்க, பேச்சு கண்டறிதல் சேவையை இயக்குவதற்காக உங்கள் ஆடியோ <>-க்கு அனுப்பப்படும்." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "நீங்கள் கோரிய பக்கத்தைக் கண்டறிய முடியவில்லை." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "மூட, திரும்பு பட்டனை அழுத்தவும்." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "பின்னர் மீண்டும் முயலவும்." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "நடப்பு நெட்வொர்க் நிலையை சரிபார்க்கவும்." + +msgid "COM_SID_ERROR_CODE" msgstr "பிழை குறியீடு" \ No newline at end of file diff --git a/wrt/resources/tv_locales/te_IN.po b/wrt/resources/tv_locales/te_IN.po index 6f9057a..d9e52b1 100755 --- a/wrt/resources/tv_locales/te_IN.po +++ b/wrt/resources/tv_locales/te_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "వినియోగదారు ప్రమాణీకరణ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "సర్టిఫికేట్ సమాచారం" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "వెబ్ నోటిఫికేషన్" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ప్రమాణీకరణ అవసరం." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ఈ సైట్ యొక్క భద్రతా సర్టిఫికేట్‌తో సమస్యలు ఉన్నాయి." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "నోటిఫికేషన్‌లను చూపడానికి ఈ వెబ్‌సైట్‌ని అనుమతిస్తుంది." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ప్రాధాన్యతను గుర్తుంచుకోండి." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "వినియోగదారు పేరు" - -msgid "COM_SID_PASSWORD" -msgstr "పాస్‌వర్డ్" - -msgid "COM_SID_OK" -msgstr "సరే" - -msgid "SID_LOGIN" -msgstr "లాగిన్ చేయి" - -msgid "COM_SID_CANCEL" -msgstr "రద్దు చేయి" - -msgid "COM_SID_ALLOW" -msgstr "అనుమతించు" - -msgid "COM_SID_DENY" -msgstr "నిరాకరించు" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "ఏదైనా శోధించడానికి <> బటన్‌ని నొక్కి, పట్టుకోండి." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> యొక్క గోప్యతా విధానానికి అనుగుణంగా దాని స్వర గుర్తింపు సేవను ప్రారంభించడానికి మీ ఆడియో <> కు పంపబడుతుంది." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "మీరు అభ్యర్థించిన పేజీని కనుగొనడం సాధ్యం కాదు." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "మూసివేసేందుకు Return బటన్ నొక్కండి." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ప్రస్తుత నెట్‌వర్క్ స్థితిని తనిఖీ చేయండి." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "వినియోగదారు ప్రమాణీకరణ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "సర్టిఫికేట్ సమాచారం" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "వెబ్ నోటిఫికేషన్" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ప్రమాణీకరణ అవసరం." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ఈ సైట్ యొక్క భద్రతా సర్టిఫికేట్‌తో సమస్యలు ఉన్నాయి." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "నోటిఫికేషన్‌లను చూపడానికి ఈ వెబ్‌సైట్‌ని అనుమతిస్తుంది." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ప్రాధాన్యతను గుర్తుంచుకోండి." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "వినియోగదారు పేరు" + +msgid "COM_SID_PASSWORD" +msgstr "పాస్‌వర్డ్" + +msgid "COM_SID_OK" +msgstr "సరే" + +msgid "SID_LOGIN" +msgstr "లాగిన్ చేయి" + +msgid "COM_SID_CANCEL" +msgstr "రద్దు చేయి" + +msgid "COM_SID_ALLOW" +msgstr "అనుమతించు" + +msgid "COM_SID_DENY" +msgstr "నిరాకరించు" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "ఏదైనా శోధించడానికి <> బటన్‌ని నొక్కి, పట్టుకోండి." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> యొక్క గోప్యతా విధానానికి అనుగుణంగా దాని స్వర గుర్తింపు సేవను ప్రారంభించడానికి మీ ఆడియో <> కు పంపబడుతుంది." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "మీరు అభ్యర్థించిన పేజీని కనుగొనడం సాధ్యం కాదు." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "మూసివేయడానికి తిరిగి వెళ్లండి బటన్‌ని నొక్కండి." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ప్రస్తుత నెట్‌వర్క్ స్థితిని తనిఖీ చేయండి." + +msgid "COM_SID_ERROR_CODE" msgstr "దోషం కోడ్" \ No newline at end of file diff --git a/wrt/resources/tv_locales/th_TH.po b/wrt/resources/tv_locales/th_TH.po index 10f8be5..722ffb2 100755 --- a/wrt/resources/tv_locales/th_TH.po +++ b/wrt/resources/tv_locales/th_TH.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "การตรวจสอบผู้ใช้" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ข้อมูลใบรับรอง" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "การแจ้งเตือนของเว็บ" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ต้องมีการตรวจสอบ" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "มีปัญหาเกี่ยวกับใบรับรองความปลอดภัยสำหรับไซต์นี้" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "อนุญาตให้เว็บไซต์นี้แสดงการแจ้งเตือน" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "จำลักษณะพิเศษ" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ชื่อผู้ใช้" - -msgid "COM_SID_PASSWORD" -msgstr "รหัสผ่าน" - -msgid "COM_SID_OK" -msgstr "ตกลง" - -msgid "SID_LOGIN" -msgstr "เข้าสู่ระบบ" - -msgid "COM_SID_CANCEL" -msgstr "ยกเลิก" - -msgid "COM_SID_ALLOW" -msgstr "ยอมรับ" - -msgid "COM_SID_DENY" -msgstr "ปฎิเสธ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "กดค้างปุ่ม <> เพื่อค้นหาสิ่งที่ต้องการ" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "เสียงของคุณจะส่งไปยัง <> เพื่อเปิดใช้งานบริการด้านการจดจำคำพูดตามนโยบายความเป็นส่วนตัวของ <>" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ไม่พบหน้าที่คุณขอ" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "กดปุ่ม Return เพื่อปิด" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "โปรดลองอีกครั้งในภายหลัง" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ตรวจสอบสถานะเครือข่ายปัจจุบัน" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "การตรวจสอบผู้ใช้" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ข้อมูลใบรับรอง" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "การแจ้งเตือนของเว็บ" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ต้องมีการตรวจสอบ" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "มีปัญหาเกี่ยวกับใบรับรองความปลอดภัยสำหรับไซต์นี้" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "อนุญาตให้เว็บไซต์นี้แสดงการแจ้งเตือน" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "จำลักษณะพิเศษ" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ชื่อผู้ใช้" + +msgid "COM_SID_PASSWORD" +msgstr "รหัสผ่าน" + +msgid "COM_SID_OK" +msgstr "ตกลง" + +msgid "SID_LOGIN" +msgstr "เข้าสู่ระบบ" + +msgid "COM_SID_CANCEL" +msgstr "ยกเลิก" + +msgid "COM_SID_ALLOW" +msgstr "ยอมรับ" + +msgid "COM_SID_DENY" +msgstr "ปฎิเสธ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "กดค้างปุ่ม <> เพื่อค้นหาสิ่งที่ต้องการ" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "เสียงของคุณจะส่งไปยัง <> เพื่อเปิดใช้งานบริการด้านการจดจำคำพูดตามนโยบายความเป็นส่วนตัวของ <>" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ไม่พบหน้าที่คุณขอ" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "กดปุ่ม กลับ เพื่อปิด" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "โปรดลองอีกครั้งในภายหลัง" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ตรวจสอบสถานะเครือข่ายปัจจุบัน" + +msgid "COM_SID_ERROR_CODE" msgstr "รหัสข้อผิดพลาด" \ No newline at end of file diff --git a/wrt/resources/tv_locales/tl_PH.po b/wrt/resources/tv_locales/tl_PH.po index 1c98ff7..ac9f89d 100755 --- a/wrt/resources/tv_locales/tl_PH.po +++ b/wrt/resources/tv_locales/tl_PH.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "User Authentication" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Certificate info" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web notification" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Authentication required." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "There are problems with the security certificate for this site." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Allows this website to show notifications" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Remember preference." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "User Name" - -msgid "COM_SID_PASSWORD" -msgstr "Password" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Login" - -msgid "COM_SID_CANCEL" -msgstr "Kanselahin" - -msgid "COM_SID_ALLOW" -msgstr "Payagan" - -msgid "COM_SID_DENY" -msgstr "Tanggihan" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Pindutin nang matagal ang button na <> para maghanap." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ipapadala ang iyong audio sa <> para ma-enable ang serbisyo nito sa pagkilala sa boses alinsunod sa patakaran sa privacy ng <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Hindi nahanap ang page na hiniling mo." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Press the Return button to close." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Pakisubukang muli sa ibang pagkakataon." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Tingnan ang kasalukuyang status ng network." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "User Authentication" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Certificate info" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web notification" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Authentication required." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "There are problems with the security certificate for this site." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Allows this website to show notifications" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Remember preference." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "User Name" + +msgid "COM_SID_PASSWORD" +msgstr "Password" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Login" + +msgid "COM_SID_CANCEL" +msgstr "Kanselahin" + +msgid "COM_SID_ALLOW" +msgstr "Payagan" + +msgid "COM_SID_DENY" +msgstr "Tanggihan" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Pindutin nang matagal ang button na <> para maghanap." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ipapadala ang iyong audio sa <> para ma-enable ang serbisyo nito sa pagkilala sa boses alinsunod sa patakaran sa privacy ng <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Hindi nahanap ang page na hiniling mo." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Pindutin ang button na Bumalik para isara." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Pakisubukang muli sa ibang pagkakataon." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Tingnan ang kasalukuyang status ng network." + +msgid "COM_SID_ERROR_CODE" msgstr "Error code" \ No newline at end of file diff --git a/wrt/resources/tv_locales/tr_TR.po b/wrt/resources/tv_locales/tr_TR.po index 8f01b13..239d63a 100755 --- a/wrt/resources/tv_locales/tr_TR.po +++ b/wrt/resources/tv_locales/tr_TR.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Kullanıcı K. Dğrlma" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifika bilgileri" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web bildirimi" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Kimlik doğrulama gerekiyor." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Bu sitenin güvenlik sertifikası ile ilgili sorunlar var." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Bu web sitesinin bildirimleri göstermesini sağlar." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Tercihi hatırla." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Kul. Adı" - -msgid "COM_SID_PASSWORD" -msgstr "Şifre" - -msgid "COM_SID_OK" -msgstr "Tamam" - -msgid "SID_LOGIN" -msgstr "Oturum Aç" - -msgid "COM_SID_CANCEL" -msgstr "İptal" - -msgid "COM_SID_ALLOW" -msgstr "İzn ver" - -msgid "COM_SID_DENY" -msgstr "Reddet" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Bir şey aramak için <> düğmesine basın ve tutun." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Sesiniz <> gizlilik politikası uyarınca konuşma tanıma hizmetini etkinleştirmek için <> şirketine gönderilecek." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Talep ettiğiniz sayfa bulunamıyor." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Kapatmak için Return düğmesine basın." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Lütfen daha sonra tekrar deneyin." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Mevcut ağ durumunu kontrol edin." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Kullanıcı K. Dğrlma" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifika bilgileri" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web bildirimi" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Kimlik doğrulama gerekiyor." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Bu sitenin güvenlik sertifikası ile ilgili sorunlar var." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Bu web sitesinin bildirimleri göstermesini sağlar." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Tercihi hatırla." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Kul. Adı" + +msgid "COM_SID_PASSWORD" +msgstr "Şifre" + +msgid "COM_SID_OK" +msgstr "Tamam" + +msgid "SID_LOGIN" +msgstr "Oturum Aç" + +msgid "COM_SID_CANCEL" +msgstr "İptal" + +msgid "COM_SID_ALLOW" +msgstr "İzn ver" + +msgid "COM_SID_DENY" +msgstr "Reddet" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Bir şey aramak için <> düğmesine basın ve tutun." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Sesiniz <> gizlilik politikası uyarınca konuşma tanıma hizmetini etkinleştirmek için <> şirketine gönderilecek." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Talep ettiğiniz sayfa bulunamıyor." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Kapatmak için Geri Dön düğmeye basın." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Lütfen daha sonra tekrar deneyin." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Mevcut ağ durumunu kontrol edin." + +msgid "COM_SID_ERROR_CODE" msgstr "Hata kodu" \ No newline at end of file diff --git a/wrt/resources/tv_locales/tu_IN.po b/wrt/resources/tv_locales/tu_IN.po index 59df632..c2ecc39 100755 --- a/wrt/resources/tv_locales/tu_IN.po +++ b/wrt/resources/tv_locales/tu_IN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "ಬಳಕೆ ಮಲ್ಪುನಾಯನ ದೃಢೀಕರಣ" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "ಸರ್ಟಿಫಿಕೇಟ್ ಮಾಹಿತಿ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ವೆಬ್ ನೋಟಿಫಿಕೇಶನ್" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "ದೃಢೀಕರಣದ ಅಗತ್ಯವುಂಡು." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "ಈ ಸೈಟ್‌ಗ್ ರಕ್ಷಣೆದ ಸರ್ಟಿಫಿಕೇಟ್‌ದ ತೊಂದರೆಲು ಉಂಡು." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "ನೋಟಿಫಿಕೇಶನ್‌ಲೆನ್ ತೋಜಾವರೆ ಈ ವೆಬ್‌ಸೈಟ್‌ಗ್ ಅನುಮತಿಸಾವುಂಡು." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ಆದ್ಯತೆನ್ ನೆನಪುದೀಲೆ." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "ಬಳಕೆದಾರೆ ಪುದರ್" - -msgid "COM_SID_PASSWORD" -msgstr "ಪಾಸ್‌ವರ್ಡ್" - -msgid "COM_SID_OK" -msgstr "ಸರಿ" - -msgid "SID_LOGIN" -msgstr "ಲಾಗಿನ್" - -msgid "COM_SID_CANCEL" -msgstr "ರದ್ದ್" - -msgid "COM_SID_ALLOW" -msgstr "ಅನುಮತಿಸಾಲೆ" - -msgid "COM_SID_DENY" -msgstr "ತಿರಸ್ಕರಿಸಾಲೆ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "ದಾದೆನ್ ಆಂಡಲಾ ನಾಡೊಡಾಂಡ <> ಬಟನ್‌ನ್ ಒತ್ತುದು ಪತೊನ್ಲೆ." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "<> ದೊಟ್ಟುದ ಗೋಪ್ಯತಾ ನೀತಿದ ಅನುಸಾರವಾದ್ ಆಯ್ತ ಪಾತೆರ ಗುರುತಿಸುವಿಕೆ ಸೇವೆನ್ ಸಕ್ರಿಯ ಮಲ್ಪರೆ ಈರೆನ ಆಡಿಯೋನ್ <> ಗ್ ಕಡಪುರುಂಡು." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "ನಿಕುಲು ನಾಡೊಂದುಪ್ಪುನ ಪುಟ ತಿಕೊಂದಿಜ್ಜಿ." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "ಮುಚ್ಚರೆ Return ಬಟನ್ ಪ್ರೆಸ್ ಮಲ್ಪುಲೆ." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "ಒಂತೆ ಪೊರ್ತಾಯಿಬೊಕ್ಕ ಕುಡೊರ ಪ್ರಯತ್ನಿಸಾಲೆ." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "ಪ್ರಸಕ್ತ ನೆಟ್ವರ್ಕ್ ಸ್ಟೇಟಸ್ ನ್ ಚೆಕ್ ಮಲ್ಪುಲೆ." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "ಬಳಕೆ ಮಲ್ಪುನಾಯನ ದೃಢೀಕರಣ" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "ಸರ್ಟಿಫಿಕೇಟ್ ಮಾಹಿತಿ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ವೆಬ್ ನೋಟಿಫಿಕೇಶನ್" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "ದೃಢೀಕರಣದ ಅಗತ್ಯವುಂಡು." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "ಈ ಸೈಟ್‌ಗ್ ರಕ್ಷಣೆದ ಸರ್ಟಿಫಿಕೇಟ್‌ದ ತೊಂದರೆಲು ಉಂಡು." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "ನೋಟಿಫಿಕೇಶನ್‌ಲೆನ್ ತೋಜಾವರೆ ಈ ವೆಬ್‌ಸೈಟ್‌ಗ್ ಅನುಮತಿಸಾವುಂಡು." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ಆದ್ಯತೆನ್ ನೆನಪುದೀಲೆ." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "ಬಳಕೆದಾರೆ ಪುದರ್" + +msgid "COM_SID_PASSWORD" +msgstr "ಪಾಸ್‌ವರ್ಡ್" + +msgid "COM_SID_OK" +msgstr "ಸರಿ" + +msgid "SID_LOGIN" +msgstr "ಲಾಗಿನ್" + +msgid "COM_SID_CANCEL" +msgstr "ರದ್ದ್" + +msgid "COM_SID_ALLOW" +msgstr "ಅನುಮತಿಸಾಲೆ" + +msgid "COM_SID_DENY" +msgstr "ತಿರಸ್ಕರಿಸಾಲೆ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "ದಾದೆನ್ ಆಂಡಲಾ ನಾಡೊಡಾಂಡ <> ಬಟನ್‌ನ್ ಒತ್ತುದು ಪತೊನ್ಲೆ." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "<> ದೊಟ್ಟುದ ಗೋಪ್ಯತಾ ನೀತಿದ ಅನುಸಾರವಾದ್ ಆಯ್ತ ಪಾತೆರ ಗುರುತಿಸುವಿಕೆ ಸೇವೆನ್ ಸಕ್ರಿಯ ಮಲ್ಪರೆ ಈರೆನ ಆಡಿಯೋನ್ <> ಗ್ ಕಡಪುರುಂಡು." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "ನಿಕುಲು ನಾಡೊಂದುಪ್ಪುನ ಪುಟ ತಿಕೊಂದಿಜ್ಜಿ." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "ಮುಚ್ಚರೆ ರಿಟರ್ನ್ ಬಟನ್‌ನ್ ಒತ್ತುಲೆ." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "ಒಂತೆ ಪೊರ್ತಾಯಿಬೊಕ್ಕ ಕುಡೊರ ಪ್ರಯತ್ನಿಸಾಲೆ." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "ಪ್ರಸಕ್ತ ನೆಟ್ವರ್ಕ್ ಸ್ಟೇಟಸ್ ನ್ ಚೆಕ್ ಮಲ್ಪುಲೆ." + +msgid "COM_SID_ERROR_CODE" msgstr "ದೋಷ ಕೋಡ್" \ No newline at end of file diff --git a/wrt/resources/tv_locales/uk_UA.po b/wrt/resources/tv_locales/uk_UA.po index c95e80f..c098c85 100755 --- a/wrt/resources/tv_locales/uk_UA.po +++ b/wrt/resources/tv_locales/uk_UA.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Автентифікація користувача" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Інформація про сертифікат" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Веб-сповіщення" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Потрібна автентифікація." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Із сертифікатом безпеки цього веб-сайту виникли проблеми." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Дозволяє цьому веб-сайту показувати сповіщення." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Запам’ятайте вибрані налаштування." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Ім’я користувача" - -msgid "COM_SID_PASSWORD" -msgstr "Пароль" - -msgid "COM_SID_OK" -msgstr "ОК" - -msgid "SID_LOGIN" -msgstr "Вхід" - -msgid "COM_SID_CANCEL" -msgstr "Скасув." - -msgid "COM_SID_ALLOW" -msgstr "Дозв." - -msgid "COM_SID_DENY" -msgstr "Відх." - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Натисніть і утримуйте кнопку <>, щоб виконати пошук." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Ваш аудіозапис буде надіслано до <>, щоб увімкнути послугу розпізнавання мовлення відповідно до Політики конфіденційності <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Неможливо знайти сторінку, яку ви шукаєте." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Натисніть кнопку Return, щоб закрити." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Спробуйте пізніше." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Перевірка поточного стану мережі." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Автентифікація користувача" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Інформація про сертифікат" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Вебсповіщення" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Потрібна автентифікація." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Із сертифікатом безпеки цього вебсайту виникли проблеми." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Дозволяє цьому вебсайту показувати сповіщення." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Запам’ятайте вибрані налаштування." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Ім’я користувача" + +msgid "COM_SID_PASSWORD" +msgstr "Пароль" + +msgid "COM_SID_OK" +msgstr "ОК" + +msgid "SID_LOGIN" +msgstr "Вхід" + +msgid "COM_SID_CANCEL" +msgstr "Скасув." + +msgid "COM_SID_ALLOW" +msgstr "Дозв." + +msgid "COM_SID_DENY" +msgstr "Відх." + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Натисніть і утримуйте кнопку <>, щоб виконати пошук." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Ваш аудіозапис буде надіслано до <>, щоб увімкнути послугу розпізнавання мовлення відповідно до Політики конфіденційності <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Неможливо знайти сторінку, яку ви шукаєте." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Натисніть кнопку «Повернутися», щоб закрити." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Спробуйте пізніше." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Перевірка поточного стану мережі." + +msgid "COM_SID_ERROR_CODE" msgstr "Код помилки" \ No newline at end of file diff --git a/wrt/resources/tv_locales/ur_PK.po b/wrt/resources/tv_locales/ur_PK.po index 27e4d05..e74d440 100755 --- a/wrt/resources/tv_locales/ur_PK.po +++ b/wrt/resources/tv_locales/ur_PK.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "صارف توثیق کاری" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "سند معلومات" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "ویب اعلان" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "توثیق کاری درکار۔" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "اس سائٹ کیلئے سلامتی تصدیق نامہ کے ساتھ مسائل موجود ہیں۔" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "اس ویب سائٹ کو اعلامیے دکھانے کی اجازت دیں۔" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "ترجیح یاد رکھیں۔" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "صارف نام" - -msgid "COM_SID_PASSWORD" -msgstr "پاس ورڈ" - -msgid "COM_SID_OK" -msgstr "ٹھیک ہے" - -msgid "SID_LOGIN" -msgstr "لاگ ان" - -msgid "COM_SID_CANCEL" -msgstr "منسوخ" - -msgid "COM_SID_ALLOW" -msgstr "اجازت دیں" - -msgid "COM_SID_DENY" -msgstr "انکار کریں" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "کوئی چیز تلاش کرنے کیلئے <> بٹن دبائیں اور تھامیں۔" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "آپ کی آڈیو کو اس کی تقریر کی پہچان خدمت کو اہل بنانے کیلئے <> کو بھیجا جائے گا بموجب <>کی رازداری پالیسی۔" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "وہ صفحہ ڈھونڈنے سے قاصر جو آپ نے درخواست کیا ہے۔" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "بند کرنے کیلئے Return بٹن دبائیں۔" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "برائے مہربانی بعد میں پھر کوشش کریں۔" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "نیٹ ورک کا موجودہ سٹیٹس چیک کریں۔" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "صارف توثیق کاری" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "سند معلومات" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "ویب اعلان" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "توثیق کاری درکار۔" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "اس سائٹ کیلئے سلامتی تصدیق نامہ کے ساتھ مسائل موجود ہیں۔" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "اس ویب سائٹ کو اعلامیے دکھانے کی اجازت دیں۔" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "ترجیح یاد رکھیں۔" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "صارف نام" + +msgid "COM_SID_PASSWORD" +msgstr "پاس ورڈ" + +msgid "COM_SID_OK" +msgstr "ٹھیک ہے" + +msgid "SID_LOGIN" +msgstr "لاگ ان" + +msgid "COM_SID_CANCEL" +msgstr "منسوخ" + +msgid "COM_SID_ALLOW" +msgstr "اجازت دیں" + +msgid "COM_SID_DENY" +msgstr "انکار کریں" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "کوئی چیز تلاش کرنے کیلئے <> بٹن دبائیں اور تھامیں۔" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "آپ کی آڈیو کو اس کی تقریر کی پہچان خدمت کو اہل بنانے کیلئے <> کو بھیجا جائے گا بموجب <>کی رازداری پالیسی۔" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "وہ صفحہ ڈھونڈنے سے قاصر جو آپ نے درخواست کیا ہے۔" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "بند کرنے کیلئے واپس ہوں بٹن دبائیں۔" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "برائے مہربانی بعد میں پھر کوشش کریں۔" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "نیٹ ورک کا موجودہ سٹیٹس چیک کریں۔" + +msgid "COM_SID_ERROR_CODE" msgstr "غلطی کا کوڈ" \ No newline at end of file diff --git a/wrt/resources/tv_locales/uz_UZ@cyrillic.po b/wrt/resources/tv_locales/uz_UZ@cyrillic.po index 51a8c4b..9bcdb38 100755 --- a/wrt/resources/tv_locales/uz_UZ@cyrillic.po +++ b/wrt/resources/tv_locales/uz_UZ@cyrillic.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Autentifikatsiya" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Sertifikat haqida axborot" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Veb-bildirishnoma" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Autentifikatsiya qilish talab etiladi." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Ushbu veb-sayt xavfsizlik sertifikatiga oid muammolar bor." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Bu veb-saytga bildirishnoma chiqarishiga ruxsat berish." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Afzal ko‘rilganni eslab qolish." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Foydalanishdagi ism" - -msgid "COM_SID_PASSWORD" -msgstr "Parol" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Tizimga kirish" - -msgid "COM_SID_CANCEL" -msgstr "Bekor qilish" - -msgid "COM_SID_ALLOW" -msgstr "Ruxsat berish" - -msgid "COM_SID_DENY" -msgstr "Rad etish" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Biror narsani qidirish uchun <> tugmasini bosib turing." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Audio maʼlumotingiz <> maxfiylik siyosatiga muvofiq <> nutqni aniqlash xizmatini yoqish uchun unga yuboriladi." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Siz qidirayotgan sahifa topilmadi." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Yopish uchun Return tugmasini bosing." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Iltimos, keyinroq harakat qilib ko‘ring." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Joriy tarmoq holatini tekshiring." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Autentifikatsiya" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Sertifikat haqida axborot" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Veb-bildirishnoma" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Autentifikatsiya qilish talab etiladi." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Ushbu veb-sayt xavfsizlik sertifikatiga oid muammolar bor." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Bu veb-saytga bildirishnoma chiqarishiga ruxsat berish." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Afzal ko‘rilganni eslab qolish." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Foydalanishdagi ism" + +msgid "COM_SID_PASSWORD" +msgstr "Parol" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Tizimga kirish" + +msgid "COM_SID_CANCEL" +msgstr "Bekor qilish" + +msgid "COM_SID_ALLOW" +msgstr "Ruxsat berish" + +msgid "COM_SID_DENY" +msgstr "Rad etish" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Biror narsani qidirish uchun <> tugmasini bosib turing." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Audio maʼlumotingiz <> maxfiylik siyosatiga muvofiq <> nutqni aniqlash xizmatini yoqish uchun unga yuboriladi." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Siz qidirayotgan sahifa topilmadi." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Yopish uchun Qaytish tugmasini bosing." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Iltimos, keyinroq harakat qilib ko‘ring." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Joriy tarmoq holatini tekshiring." + +msgid "COM_SID_ERROR_CODE" msgstr "Xatolik kodi" \ No newline at end of file diff --git a/wrt/resources/tv_locales/vi_VN.po b/wrt/resources/tv_locales/vi_VN.po index 7bbfed9..675c019 100755 --- a/wrt/resources/tv_locales/vi_VN.po +++ b/wrt/resources/tv_locales/vi_VN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Xác thực người dùng" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Thông tin chứng chỉ" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Thông báo web" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Yêu cầu xác thực." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Có sự cố với chứng chỉ bảo mật của trang web này." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Cho phép trang web này hiển thị thông báo." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Ghi nhớ tùy chọn." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Tên người dùng" - -msgid "COM_SID_PASSWORD" -msgstr "Mật khẩu" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Đăng nhập" - -msgid "COM_SID_CANCEL" -msgstr "Hủy" - -msgid "COM_SID_ALLOW" -msgstr "Cho phép" - -msgid "COM_SID_DENY" -msgstr "Từ chối" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Nhấn và giữ nút <> để tìm kiếm." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Giọng nói của bạn sẽ được gửi đến <> để kích hoạt chức năng nhận diện giọng nói, tuân thủ theo chính sách bảo mật và quyền riêng tư của <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Không thể tìm thấy trang bạn yêu cầu." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Nhấn nút Return để đóng." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Vui lòng thử lại sau." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Kiểm tra trạng thái mạng hiện tại." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Xác thực người dùng" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Thông tin chứng chỉ" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Thông báo web" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Yêu cầu xác thực." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Có sự cố với chứng chỉ bảo mật của trang web này." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Cho phép trang web này hiển thị thông báo." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Ghi nhớ tùy chọn." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Tên người dùng" + +msgid "COM_SID_PASSWORD" +msgstr "Mật khẩu" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Đăng nhập" + +msgid "COM_SID_CANCEL" +msgstr "Hủy" + +msgid "COM_SID_ALLOW" +msgstr "Cho phép" + +msgid "COM_SID_DENY" +msgstr "Từ chối" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Nhấn và giữ nút <> để tìm kiếm." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Giọng nói của bạn sẽ được gửi đến <> để kích hoạt chức năng nhận diện giọng nói, tuân thủ theo chính sách bảo mật và quyền riêng tư của <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Không thể tìm thấy trang bạn yêu cầu." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Nhấn nút Trở về để đóng." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Vui lòng thử lại sau." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Kiểm tra trạng thái mạng hiện tại." + +msgid "COM_SID_ERROR_CODE" msgstr "Mã lỗi" \ No newline at end of file diff --git a/wrt/resources/tv_locales/xh_ZA.po b/wrt/resources/tv_locales/xh_ZA.po index 5924886..9d13f18 100755 --- a/wrt/resources/tv_locales/xh_ZA.po +++ b/wrt/resources/tv_locales/xh_ZA.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Ukuqinisekiswa koMsebenzisi" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Ulwazi lweSatifiketi" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Isaziso seWebhu" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Uqinisekiso luyafuneka." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Kukho iingxaki nesatifikethi sokhuseleko sale sayithi." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Vumela le website ukubonisa izaziso." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Khumbula ukhetho." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Igama lomsebenzisi" - -msgid "COM_SID_PASSWORD" -msgstr "Ipaswedi" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Ngena" - -msgid "COM_SID_CANCEL" -msgstr "Yekisa" - -msgid "COM_SID_ALLOW" -msgstr "Vumela" - -msgid "COM_SID_DENY" -msgstr "Yala" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Cofa uze ubambe iqhosha i-<> ukuze ukhangele into ethile." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "I-odiyo yakho iya kuthunyelwa kwi-<> ukuze kuvulelwe iinkonzo zoqaphelo lelizwi ngokuhambelana nepolisi yabucala ye-<>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Ayikwazi ukufumana iphepha olicelileyo." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Cofa iqhosa leReturn ukuze uvale." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Nceda uphinde uzame ngelinye ixesha." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Jonga ubume bonxulumano." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Ukuqinisekiswa koMsebenzisi" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Ulwazi lweSatifiketi" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Isaziso seWebhu" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Uqinisekiso luyafuneka." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Kukho iingxaki nesatifikethi sokhuseleko sale sayithi." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Vumela le website ukubonisa izaziso." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Khumbula ukhetho." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Igama lomsebenzisi" + +msgid "COM_SID_PASSWORD" +msgstr "Ipaswedi" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Ngena" + +msgid "COM_SID_CANCEL" +msgstr "Yekisa" + +msgid "COM_SID_ALLOW" +msgstr "Vumela" + +msgid "COM_SID_DENY" +msgstr "Yala" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Cofa uze ubambe iqhosha i-<> ukuze ukhangele into ethile." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "I-odiyo yakho iya kuthunyelwa kwi-<> ukuze kuvulelwe iinkonzo zoqaphelo lelizwi ngokuhambelana nepolisi yabucala ye-<>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Ayikwazi ukufumana iphepha olicelileyo." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Cofa iqhosha elithi Buyela ukuze uvale." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Nceda uphinde uzame ngelinye ixesha." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Jonga ubume bonxulumano." + +msgid "COM_SID_ERROR_CODE" msgstr "Ikhowudi yempazamo" \ No newline at end of file diff --git a/wrt/resources/tv_locales/yo_NG.po b/wrt/resources/tv_locales/yo_NG.po index 02aa918..b2a8f92 100755 --- a/wrt/resources/tv_locales/yo_NG.po +++ b/wrt/resources/tv_locales/yo_NG.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Ìmúdánilójú Olùmúlò" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Àlàyé Ìwé-ẹ̀rí" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Ìwífúnni ojúlé-wẹ́ẹ̀bù" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Nílò ìmúdánilójú." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Àwọn ìṣòro kan jẹyọ pẹ̀lú ìwé-ẹ̀rí ààbò fún àyè ayélujára yìí." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Ńgba ojúlé-wẹ́ẹ̀bù yìí láàyè láti ṣàfihàn àwọn ìwífúnni." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Rántí ohun pàtàkì." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Orúkọ Olùmúlò" - -msgid "COM_SID_PASSWORD" -msgstr "Ọ̀rọ̀agbawọle" - -msgid "COM_SID_OK" -msgstr "DÁRA" - -msgid "SID_LOGIN" -msgstr "Wíwọlé" - -msgid "COM_SID_CANCEL" -msgstr "Fagilé" - -msgid "COM_SID_ALLOW" -msgstr "Gba láàyè" - -msgid "COM_SID_DENY" -msgstr "Kọ" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Tẹ bọ́tìnnì <> mọ́lẹ̀ láti ṣàwárí nkan." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "A ó fi ohùn àfetígbọ́ tẹ ránṣẹ́ sí <> láti mú ìdámọ̀ ọ̀rọ̀ sísọ rẹ̀ ṣiṣẹ́ gẹ́gẹ́ bíi òfin ìpamọ́ ti <>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Kò le rí ojú-ewé tí o bèrè." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Tẹ bọ́tìnnì Return láti padé." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Jọ̀wọ́ gbìyànjú lẹ́ẹ̀kan síi tóbáyá." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Yẹ ipò nẹ́tíwọ̀kì ìsinsìnyí wò." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Ìmúdánilójú Olùmúlò" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Àlàyé Ìwé-ẹ̀rí" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Ìwífúnni ojúlé-wẹ́ẹ̀bù" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Nílò ìmúdánilójú." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Àwọn ìṣòro kan jẹyọ pẹ̀lú ìwé-ẹ̀rí ààbò fún àyè ayélujára yìí." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Ńgba ojúlé-wẹ́ẹ̀bù yìí láàyè láti ṣàfihàn àwọn ìwífúnni." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Rántí ohun pàtàkì." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Orúkọ Olùmúlò" + +msgid "COM_SID_PASSWORD" +msgstr "Ọ̀rọ̀agbawọle" + +msgid "COM_SID_OK" +msgstr "DÁRA" + +msgid "SID_LOGIN" +msgstr "Wíwọlé" + +msgid "COM_SID_CANCEL" +msgstr "Fagilé" + +msgid "COM_SID_ALLOW" +msgstr "Gba láàyè" + +msgid "COM_SID_DENY" +msgstr "Kọ" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Tẹ bọ́tìnnì <> mọ́lẹ̀ láti ṣàwárí nkan." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "A ó fi ohùn àfetígbọ́ tẹ ránṣẹ́ sí <> láti mú ìdámọ̀ ọ̀rọ̀ sísọ rẹ̀ ṣiṣẹ́ gẹ́gẹ́ bíi òfin ìpamọ́ ti <>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Kò le rí ojú-ewé tí o bèrè." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Tẹ bọ́tìnnì Padàsẹ́yìn láti padé." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Jọ̀wọ́ gbìyànjú lẹ́ẹ̀kan síi tóbáyá." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Yẹ ipò nẹ́tíwọ̀kì ìsinsìnyí wò." + +msgid "COM_SID_ERROR_CODE" msgstr "Kóòdù aṣiṣe" \ No newline at end of file diff --git a/wrt/resources/tv_locales/zh_CN.po b/wrt/resources/tv_locales/zh_CN.po index d1b4e81..e458400 100755 --- a/wrt/resources/tv_locales/zh_CN.po +++ b/wrt/resources/tv_locales/zh_CN.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "用户身份验证" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "证书信息" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Web 通知" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "需要身份验证。" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "此站点的安全证书有问题。" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "允许此网站显示通知。" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "记住首选项。" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "用户名" - -msgid "COM_SID_PASSWORD" -msgstr "密码" - -msgid "COM_SID_OK" -msgstr "确定" - -msgid "SID_LOGIN" -msgstr "登录" - -msgid "COM_SID_CANCEL" -msgstr "取消" - -msgid "COM_SID_ALLOW" -msgstr "允许" - -msgid "COM_SID_DENY" -msgstr "拒绝" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "按住 <> 按钮搜索某些内容。" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "您的音频将被发送到 <>,以根据 <> 的隐私政策支持其语音识别服务。" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "无法找到您请求的页面。" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "按“返回”按钮将关闭。" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "请稍后重试。" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "检查当前网络状态。" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "用户身份验证" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "证书信息" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Web 通知" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "需要身份验证。" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "此站点的安全证书有问题。" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "允许此网站显示通知。" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "记住首选项。" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "用户名" + +msgid "COM_SID_PASSWORD" +msgstr "密码" + +msgid "COM_SID_OK" +msgstr "确定" + +msgid "SID_LOGIN" +msgstr "登录" + +msgid "COM_SID_CANCEL" +msgstr "取消" + +msgid "COM_SID_ALLOW" +msgstr "允许" + +msgid "COM_SID_DENY" +msgstr "拒绝" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "按住 <> 按钮搜索某些内容。" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "您的音频将被发送到 <>,以根据 <> 的隐私政策支持其语音识别服务。" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "无法找到您请求的页面。" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "按“返回”按钮以关闭。" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "请稍后重试。" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "检查当前网络状态。" + +msgid "COM_SID_ERROR_CODE" msgstr "错误代码" \ No newline at end of file diff --git a/wrt/resources/tv_locales/zh_HK.po b/wrt/resources/tv_locales/zh_HK.po index fb9335b..850da516 100755 --- a/wrt/resources/tv_locales/zh_HK.po +++ b/wrt/resources/tv_locales/zh_HK.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "用戶驗證" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "憑證資訊" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "網絡通知" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "需要驗證。" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "此網站的安全性憑證有問題。" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "允許此網站顯示通知。" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "記住偏好設定。" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "用戶名稱" - -msgid "COM_SID_PASSWORD" -msgstr "密碼" - -msgid "COM_SID_OK" -msgstr "確定" - -msgid "SID_LOGIN" -msgstr "登入" - -msgid "COM_SID_CANCEL" -msgstr "取消" - -msgid "COM_SID_ALLOW" -msgstr "允許" - -msgid "COM_SID_DENY" -msgstr "拒絕" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "如果您想搜尋,請按住 [<>] 按鈕。" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "您的語音將傳送到 <>,以便據 <> 的私隱權政策啟用語音辨識服務。" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "無法找到您要求的頁面。" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "按下 [Return] 按鈕即可關閉。" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "請稍後再試。" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "檢查目前的網絡狀態。" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "用戶驗證" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "憑證資訊" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "網絡通知" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "需要驗證。" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "此網站的安全性憑證有問題。" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "允許此網站顯示通知。" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "記住偏好設定。" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "用戶名稱" + +msgid "COM_SID_PASSWORD" +msgstr "密碼" + +msgid "COM_SID_OK" +msgstr "確定" + +msgid "SID_LOGIN" +msgstr "登入" + +msgid "COM_SID_CANCEL" +msgstr "取消" + +msgid "COM_SID_ALLOW" +msgstr "允許" + +msgid "COM_SID_DENY" +msgstr "拒絕" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "如果您想搜尋,請按住 [<>] 按鈕。" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "您的語音將傳送到 <>,以便據 <> 的私隱權政策啟用語音辨識服務。" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "無法找到您要求的頁面。" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "按下 [返回] 按鈕即可關閉。" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "請稍後再試。" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "檢查目前的網絡狀態。" + +msgid "COM_SID_ERROR_CODE" msgstr "錯誤碼" \ No newline at end of file diff --git a/wrt/resources/tv_locales/zh_TW.po b/wrt/resources/tv_locales/zh_TW.po index 33e4195..ec59193 100755 --- a/wrt/resources/tv_locales/zh_TW.po +++ b/wrt/resources/tv_locales/zh_TW.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "使用者驗證" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "憑證資訊" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "網站通知" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "需要驗證。" - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "此網站的安全性憑證發生問題。" - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "允許此網站顯示通知。" - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "記住偏好設定。" - -msgid "COM_TEXT_USER_NAME_P" -msgstr "使用者名稱" - -msgid "COM_SID_PASSWORD" -msgstr "密碼" - -msgid "COM_SID_OK" -msgstr "確定" - -msgid "SID_LOGIN" -msgstr "登入" - -msgid "COM_SID_CANCEL" -msgstr "取消" - -msgid "COM_SID_ALLOW" -msgstr "允許" - -msgid "COM_SID_DENY" -msgstr "拒絕" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "按住 [<>] 按鈕可進行一些搜尋。" - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "您的音訊將會傳送至 <>,以依據 <> 的隱私權政策啟用其語音辨識服務。" - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "找不到您要求的頁面。" - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "按下 [返回] 按鈕關閉。" - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "請稍後再試。" - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "檢查目前網路狀態。" - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "使用者驗證" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "憑證資訊" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "網站通知" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "需要驗證。" + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "此網站的安全性憑證發生問題。" + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "允許此網站顯示通知。" + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "記住偏好設定。" + +msgid "COM_TEXT_USER_NAME_P" +msgstr "使用者名稱" + +msgid "COM_SID_PASSWORD" +msgstr "密碼" + +msgid "COM_SID_OK" +msgstr "確定" + +msgid "SID_LOGIN" +msgstr "登入" + +msgid "COM_SID_CANCEL" +msgstr "取消" + +msgid "COM_SID_ALLOW" +msgstr "允許" + +msgid "COM_SID_DENY" +msgstr "拒絕" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "按住 [<>] 按鈕可進行一些搜尋。" + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "您的音訊將會傳送至 <>,以依據 <> 的隱私權政策啟用其語音辨識服務。" + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "找不到您要求的頁面。" + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "按下 [返回] 按鈕以關閉。" + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "請稍後再試。" + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "檢查目前網路狀態。" + +msgid "COM_SID_ERROR_CODE" msgstr "錯誤碼" \ No newline at end of file diff --git a/wrt/resources/tv_locales/zu_ZA.po b/wrt/resources/tv_locales/zu_ZA.po index 3ff9277..cc952e4 100755 --- a/wrt/resources/tv_locales/zu_ZA.po +++ b/wrt/resources/tv_locales/zu_ZA.po @@ -1,71 +1,71 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -msgid "COM_MRMS_CBAGT_MAIN" -msgstr "Ukugunyaza Komsebenzisi" - -msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" -msgstr "Ulwazi lwesitifiketi" - -msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" -msgstr "Isaziso sewebhu" - -msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" -msgstr "Ukugunyaza kuyadingeka." - -msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" -msgstr "Kube nezinkinga ngesitifiketi sokuphepha saleli sayithi." - -msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" -msgstr "Vumela le webhusayithi ukubonisa izaziso." - -msgid "TV_SID_REMEMVER_PREFERENCE" -msgstr "Khumbula inketho." - -msgid "COM_TEXT_USER_NAME_P" -msgstr "Igama Lomsebenzisi" - -msgid "COM_SID_PASSWORD" -msgstr "Iphasiwedi" - -msgid "COM_SID_OK" -msgstr "OK" - -msgid "SID_LOGIN" -msgstr "Ngena" - -msgid "COM_SID_CANCEL" -msgstr "Khansela" - -msgid "COM_SID_ALLOW" -msgstr "Vumela" - -msgid "COM_SID_DENY" -msgstr "Nqaba" - -msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" -msgstr "Cindezela futhi ubambe inkinobho <> ukuze useshe okuthile." - -msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" -msgstr "Umsindo wakho uzothunyelwa ku-<> ukuze uvule isevisi ye-voice recognition ngokuvumelana nenqubomgomo yobumfihlo ye-<>." - -msgid "COM_ICON_VOICE" -msgstr "🎤" - -msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" -msgstr "Awukhoni ukuthola lekhasi olicelile." - -msgid "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE" -msgstr "Cindezela inkinobho Return ukuze uvale." - -msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" -msgstr "Sicela uzam futhi emuva kwesikhathi." - -msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" -msgstr "Bheka isimo senethiwekhi yamanje." - -msgid "COM_SID_ERROR_CODE" +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "COM_MRMS_CBAGT_MAIN" +msgstr "Ukugunyaza Komsebenzisi" + +msgid "COM_SID_WEBAPP_CERTIFICATE_INFO" +msgstr "Ulwazi lwesitifiketi" + +msgid "COM_SID_WEBAPP_WEB_NOTIFICATION" +msgstr "Isaziso sewebhu" + +msgid "COM_TV_SID_AUTHENICATION_RQEUIRED" +msgstr "Ukugunyaza kuyadingeka." + +msgid "COM_TV_SID_PROVLEMS_SECURITY_CERTIFIACATE_SITE" +msgstr "Kube nezinkinga ngesitifiketi sokuphepha saleli sayithi." + +msgid "COM_SID_WEBAPP_ALLOWS_WEBSITE_SHOW_NOTIFICATIONS" +msgstr "Vumela le webhusayithi ukubonisa izaziso." + +msgid "TV_SID_REMEMVER_PREFERENCE" +msgstr "Khumbula inketho." + +msgid "COM_TEXT_USER_NAME_P" +msgstr "Igama Lomsebenzisi" + +msgid "COM_SID_PASSWORD" +msgstr "Iphasiwedi" + +msgid "COM_SID_OK" +msgstr "OK" + +msgid "SID_LOGIN" +msgstr "Ngena" + +msgid "COM_SID_CANCEL" +msgstr "Khansela" + +msgid "COM_SID_ALLOW" +msgstr "Vumela" + +msgid "COM_SID_DENY" +msgstr "Nqaba" + +msgid "TV_SID_3RDPARTY_MIX_PRESS_BUTTON_SEARCH_FOR" +msgstr "Cindezela futhi ubambe inkinobho <> ukuze useshe okuthile." + +msgid "TV_SID_3RDPARTY_MIX_AUDIO_SET_ENABLE_SPEECH_RECOGNITION_MSG" +msgstr "Umsindo wakho uzothunyelwa ku-<> ukuze uvule isevisi ye-voice recognition ngokuvumelana nenqubomgomo yobumfihlo ye-<>." + +msgid "COM_ICON_VOICE" +msgstr "🎤" + +msgid "TV_SID_BILLING_CAFEB_UN_FIND_PAGE_REQUESTED" +msgstr "Awukhoni ukuthola lekhasi olicelile." + +msgid "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE" +msgstr "Cindezela inkinobho ethi Buyisa ukuze uvale." + +msgid "TV_SID_LOGIN_PLEASE_TRY_AGAIN_LATER" +msgstr "Sicela uzam futhi emuva kwesikhathi." + +msgid "COM_CHECK_THE_CURRENT_NETWORK_STATUS" +msgstr "Bheka isimo senethiwekhi yamanje." + +msgid "COM_SID_ERROR_CODE" msgstr "Ikhodi yephutha" \ No newline at end of file diff --git a/wrt/src/renderer/tv/wrt_renderer_client_tv.cc b/wrt/src/renderer/tv/wrt_renderer_client_tv.cc index cec91c9..2effd4a 100755 --- a/wrt/src/renderer/tv/wrt_renderer_client_tv.cc +++ b/wrt/src/renderer/tv/wrt_renderer_client_tv.cc @@ -49,7 +49,7 @@ void MakeDefaultErrorPage( auto check_network = std::string( dgettext(kTextDomainRuntime, "COM_CHECK_THE_CURRENT_NETWORK_STATUS")); auto close_page = std::string( - dgettext(kTextDomainRuntime, "TV_SID_PRESS_RETURN_BUTTON_TO_CLOSE")); + dgettext(kTextDomainRuntime, "TV_SID_REMOTEKEY_CBSEP_PRESS_RETURN_BUTTON_CLOSE")); auto error_code = std::string( dgettext(kTextDomainRuntime, "COM_SID_ERROR_CODE")); auto net_error = net::ErrorToShortString(error.reason()); -- 2.7.4 From 81a51610c24a3fe0c688a23e9fe5ba534b82bdea Mon Sep 17 00:00:00 2001 From: uzair Date: Mon, 6 Mar 2023 16:02:10 +0530 Subject: [PATCH 15/16] [M108 Migration]Notify internal API compatibility when installing wrtjs rpm Previously, the second and third versions haven't been used. So, this removes the unused versions except for the wrtjs version and newly adds {TPK_VERSION} and {INTERNAL_API_REVISION} like below: {TPK_VERSION}.{INTERNAL_API_REVISION}.{WRTJS_VERSION} The {INTERNAL_API_REVISION} needs to check API compatibility between chromium-efl and wrtjs. In addition, this notifies internal API version compatibility result using the {INTERNAL_API_REVISION} when installing rpm file. The internal API compatibility can be guaranteed only if the {INTERNAL_API_REVISION} is same with chromium-efl. Reference: https://review.tizen.org/gerrit/281213 Change-Id: I8fba74c012701f59a46fde7733fcb926f69a86b9 Signed-off-by: uzair --- packaging/chromium-efl.spec | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index f803e29..de1cec0 100755 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -1,9 +1,10 @@ Name: chromium-efl Summary: Chromium EFL -# Set by by scripts/update-chromium-version.sh -%define ChromiumVersion 108.0.5359.1 -%define Week 1 -Version: %{ChromiumVersion}.%{Week} +# Version: {TPK_VERSION}.{INTERNAL_API_REVISION}.{CHROMIUM_MAJOR_VERSION} +# The {INTERNAL_API_REVISION} is used for compatibility check with wrtjs. +Version: 1.1.108 +# Set by ./tizen_src/scripts/update_chromium_version.sh +%define upstream_chromium_version 108.0.5359.1 Release: 1 # The 'Group' should be specified as one of the following valid group list. # https://wiki.tizen.org/wiki/Packaging/Guidelines#Group_Tag @@ -852,6 +853,40 @@ install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/ install -m 0644 wrt/native_wrtjs.d.ts "%{buildroot}"%{_includedir}/wrt/ %endif +%pre +if (( $(rpm -qa | grep 'wrtjs-[[:digit:]]' | wc -l) > 1 )); then + echo -e "\033[31m*****************************************************" + echo -e "Please remove wrtjs rpm(s) except for one:\n" + rpm -qa | grep 'wrtjs-[[:digit:]]' + echo -e "*****************************************************\033[m" + exit 1 +fi + +export CHROMIUM_REVISION=$(echo %{version} | awk -F. '{print $2}') +export WRTJS_REVISION=$(rpm -qa | grep wrtjs | awk -F. '{print $2}') +if [[ "${WRTJS_REVISION}" == "" ]]; then + WRTJS_REVISION="not installed" +fi + +echo -e "\033[32m*****************************************************" +echo -e "* chromium-efl revision : ${CHROMIUM_REVISION}" +echo -e "* wrtjs revision : ${WRTJS_REVISION}" +echo -e "*" +if [[ "${WRTJS_REVISION}" == "not installed" ]] || \ + (( ${CHROMIUM_REVISION} == ${WRTJS_REVISION} )); then + echo -e "* Succeeded to check rpm versions" +else + if (( ${CHROMIUM_REVISION} < ${WRTJS_REVISION} )); then + echo -e "\033[31m* You're trying to install too old chromium-efl." + echo -e "* Please install chromium-efl as revision ${WRTJS_REVISION}" + echo -e "* or" + else + echo -e "\033[31m* You have too old wrtjs." + fi + echo -e "* please re-install wrtjs as revision ${CHROMIUM_REVISION} first." +fi +echo -e "*****************************************************\033[m" + %post %if 0%{?__enable_wrt_js} cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/alarm -t ALLOW -- 2.7.4 From 5b1e924a5a3d537aba76be987db11adf6eb18646 Mon Sep 17 00:00:00 2001 From: jiangyuwei Date: Mon, 6 Mar 2023 14:49:53 +0800 Subject: [PATCH 16/16] [M108 Migration][VD][UWE] Bringup Upgradable WebEngine for VD Reference: https://review.tizen.org/gerrit/#/c/279392/ Change-Id: I9576a04715f4c1d559513d5ea2c976f07d5f81f9 Signed-off-by: jiangyuwei --- packaging/chromium-efl.spec | 16 +++ packaging/org.tizen.chromium-efl-vd.xml.in | 2 +- tizen_src/downloadable/BUILD.gn | 10 +- tizen_src/downloadable/chromium_efl_install.cc | 146 +++++++++++++++------ .../downloadable/ewk_api_wrapper_generator.py | 2 +- tizen_src/downloadable/ewk_interface_main.cc | 76 ++++++++++- .../downloadable/wrtjs/wrtjs-1.1.1-1.armv7l.rpm | Bin 0 -> 30103 bytes tizen_src/ewk/efl_integration/command_line_efl.cc | 2 +- .../efl_integration/common/content_switches_efl.cc | 3 + .../efl_integration/common/content_switches_efl.h | 3 + tizen_src/ewk/ubrowser/main.cc | 22 ++++ 11 files changed, 233 insertions(+), 49 deletions(-) create mode 100644 tizen_src/downloadable/wrtjs/wrtjs-1.1.1-1.armv7l.rpm diff --git a/packaging/chromium-efl.spec b/packaging/chromium-efl.spec index de1cec0..5506c64 100755 --- a/packaging/chromium-efl.spec +++ b/packaging/chromium-efl.spec @@ -163,6 +163,7 @@ BuildRequires: pkgconfig(capi-stt-wrapper-tv) BuildRequires: pkgconfig(capi-system-display-rotator) BuildRequires: pkgconfig(drmdecrypt) BuildRequires: pkgconfig(efl-assist) +BuildRequires: pkgconfig(lwipc) BuildRequires: pkgconfig(privileged-service) BuildRequires: pkgconfig(vd-win-util) BuildRequires: pkgconfig(WebProduct) @@ -268,6 +269,16 @@ BuildRequires: pkgconfig(capi-ui-inputmethod) %define __make_squashfs_rpm %{?_make_squashfs_rpm}%{!?_make_squashfs_rpm:%{?__enable_squashfs_image}} %define __generate_tpk %{?__make_squashfs_rpm} +%if "%{?profile}" == "tv" + %if 0%{?tpktype:1} + %define __generate_tpk 1 + %else + %define __generate_tpk 0 + %endif +%else + %define __generate_tpk %{?__make_squashfs_rpm} +%endif + %if 0%{?__enable_squashfs_image} BuildRequires: squashfs %endif @@ -549,6 +560,11 @@ sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \ > "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml %endif +%if 0%{?__generate_tpk} && "%{?profile}" == "tv" +# add build_id to tizen-manifest +python3 %{TZ_SYS_BIN}/set_build_info.py "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml %{COSMOS_BUILD_ID} +%endif + # Generate pkg-confg file mkdir -p "%{OUTPUT_FOLDER}"/pkgconfig/ > "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc diff --git a/packaging/org.tizen.chromium-efl-vd.xml.in b/packaging/org.tizen.chromium-efl-vd.xml.in index 96ad8fe..1873543 100644 --- a/packaging/org.tizen.chromium-efl-vd.xml.in +++ b/packaging/org.tizen.chromium-efl-vd.xml.in @@ -4,7 +4,7 @@ SamsungResearch Tizen Web Engine provides WebView API(EWK) to display and control web pages. - + diff --git a/tizen_src/downloadable/BUILD.gn b/tizen_src/downloadable/BUILD.gn index 7ebd01f..670a4c3 100644 --- a/tizen_src/downloadable/BUILD.gn +++ b/tizen_src/downloadable/BUILD.gn @@ -23,9 +23,6 @@ shared_library("ewk-interface") { "LIB_RO_ROOT_DIR=\"$lib_ro_root_dir\"", "CHROMIUM_IMPL_LIB_FILE=\"$chromium_impl_lib_name\"", ] - if (tizen_product_tv) { - defines += [ "LIB_UPGRADE_ROOT_DIR=\"$lib_upgrade_root_dir\"" ] - } deps = [ ":ewk_api_wrapper_source" ] sources = [ "$root_gen_dir/ewk_api_wrapper_generated.cc", @@ -37,6 +34,12 @@ shared_library("ewk-interface") { ] ldflags = [ "-Wl,--version-script=" + rebase_path("//tizen_src/ewk/chromium-ewk.filter") ] + if (tizen_product_tv) { + defines += [ + "LIB_UPGRADE_ROOT_DIR=\"$lib_upgrade_root_dir\"", + ] + libs += [ "lwipc", "ttrace" ] + } } executable("chromium-efl-install") { @@ -77,5 +80,6 @@ executable("chromium-efl-install") { } if (tizen_product_tv) { configs += [ "//tizen_src/build:privileged-service" ] + libs += [ "lwipc", "vconf" ] } } diff --git a/tizen_src/downloadable/chromium_efl_install.cc b/tizen_src/downloadable/chromium_efl_install.cc index 67fd8f7..d9ccbef 100644 --- a/tizen_src/downloadable/chromium_efl_install.cc +++ b/tizen_src/downloadable/chromium_efl_install.cc @@ -5,18 +5,18 @@ #include #include #include +#include +#include #include #include #include #include #include - +#include +#include #include #include -#include -#include - #define FILE_LOG_OUT #include "dlog_util.h" @@ -68,10 +68,48 @@ __attribute__((destructor)) void close_log_file() { " -t squashfs -o loop,ro" #define UMOUNT_ARGS_PREFIX "-dl " +#define SUCCESS 0 +#define FAIL -1 + +const char* kChromiumMountReady = "/tmp/.chromium_mount.ready"; +const char* kColdBootRequester = "chromium-efl"; +const char* kLaunchFail = "rtc/memory/WebApp/LaunchFail"; +const char* kPSAgentReady = "/run/ps_agent.pid"; +const char* kSetColdBoot = "memory/boot/cold_poweroff_request_pkg"; +std::string kTargetTPK; +const unsigned int kPSAgentTimeout = 20000; + +static bool ps_agent_ready = false; +static bool WaitPSAgentReady() { + if (ps_agent_ready) + return true; + + LOG(INFO) << "Waiting until the ps_agent ready"; + int ret = LwipcWaitEvent(kPSAgentReady, kPSAgentTimeout); + if (ret != 0) { + LOG(ERROR) << "ps_agent is not ready : " << (ret > 0 ? "timeout" : "fail"); + return false; + } + + LOG(INFO) << "ps_agent is ready"; + ps_agent_ready = true; + return true; +} + +static void SetErrMsg(const std::string& mount_error) { + std::string vconfValue = kTargetTPK + mount_error; + LOG(ERROR) << "vconf : " << kLaunchFail << " value : " << vconfValue; + vconf_set_str_rtc(kLaunchFail, vconfValue.c_str()); +} + +static void RequestColdBoot() { + LOG(INFO) << "Request Cold Boot"; + if (vconf_set_str(kSetColdBoot, kColdBootRequester) != 0) + LOG(ERROR) << "Request Cold Boot Fail"; +} // tv has different mount method and no tpk self-installation static int mount(bool mount, const char* args, bool use_system = false) { - int rv = 0; #define DEBUG_LOG_SMACK_LABEL 0 #if DEBUG_LOG_SMACK_LABEL FILE* fd = fopen("/proc/self/attr/current", "r"); @@ -83,16 +121,70 @@ static int mount(bool mount, const char* args, bool use_system = false) { } #endif + if (WaitPSAgentReady() == false) + LOG(ERROR) << "Chromium-efl mount may not work."; + LOG(INFO) << "mount:" << mount << ", args: \"" << args << "\""; - int result = 0; + int rv = SUCCESS; + int result = SUCCESS; + if (mount) rv = PS_Mount(args, strlen(args) + 1, 1, &result); else rv = PS_Umount(args, strlen(args) + 1, 1, &result); LOG(INFO) << "result = " << rv << ", " << result; - if (rv != 0 || result != 0) - return -1; - return 0; + if (rv != SUCCESS || result != SUCCESS) { + std::string mount_error = "mount failed. (" + std::to_string(rv) + ", " + + std::to_string(result) + ")"; + SetErrMsg(mount_error); + return FAIL; + } + + if (LwipcEventDone(kChromiumMountReady) < 0) { + // The Lwipc api simply calls the ioctl() inside the function. + // Failure of this API means that there are some kernel issues. + LOG(ERROR) << kChromiumMountReady << " Event Failed."; + } + + return SUCCESS; +} + +static int MountPatchedTPK() { + int result = FAIL; + if (!access(LIB_RO_ROOT_DIR "/version", F_OK)) { + LOG(INFO) << LIB_RO_ROOT_DIR "/version file already exists."; + return SUCCESS; + } + + if (!access(PATH_UPDATED_CHROMIUM_EFL_IMG, F_OK)) { + LOG(INFO) << PATH_UPDATED_CHROMIUM_EFL_IMG << " exists."; + kTargetTPK = "WebEngine Updated TPK "; + result = mount(true, MOUNT_ARGS_UPDATED_CHROMIUM); + } + + if (result != SUCCESS && !access(PATH_PRELOAD_CHROMIUM_EFL_IMG, F_OK)) { + LOG(INFO) << PATH_PRELOAD_CHROMIUM_EFL_IMG << " exists."; + kTargetTPK = "WebEngine Preload TPK "; + result = mount(true, MOUNT_ARGS_PRELOAD_CHROMIUM); + } + + return result; +} + +static void MountUpgradeTPK() { + if (!access(LIB_UPGRADE_ROOT_DIR "/version", F_OK)) { + RequestColdBoot(); + LOG(INFO) << LIB_UPGRADE_ROOT_DIR "/version file already exists."; + return; + } + + if (!access(PATH_UPGRADE_CHROMIUM_EFL_IMG, F_OK)) { + LOG(INFO) << PATH_UPGRADE_CHROMIUM_EFL_IMG << " exists."; + kTargetTPK = "WebEngine Upgrade TPK "; + mount(true, MOUNT_ARGS_UPGRADE_CHROMIUM); + } else { + LOG(INFO) << "No WebEngine Upgrade TPK found"; + } } enum Options { @@ -136,38 +228,12 @@ int main(int argc, char* argv[]) { // To avoid concurrency problem, a lock must be shared with installer. // // Mount patched/preload chromium-efl.img (Mandatory) - result = -1; - if (!access(LIB_RO_ROOT_DIR "/version", F_OK)) { - LOG(INFO) << LIB_RO_ROOT_DIR "/version file already exists."; - } else { - // TODO : Lock here - if (result != 0 && !access(PATH_UPDATED_CHROMIUM_EFL_IMG, F_OK)) { - LOG(INFO) << PATH_UPDATED_CHROMIUM_EFL_IMG << " exists."; - result = mount(true, MOUNT_ARGS_UPDATED_CHROMIUM); - } - // TODO : Unlock here - if (result != 0 && !access(PATH_PRELOAD_CHROMIUM_EFL_IMG, F_OK)) { - LOG(INFO) << PATH_PRELOAD_CHROMIUM_EFL_IMG << " exists."; - result = mount(true, MOUNT_ARGS_PRELOAD_CHROMIUM); - } - if (result != 0) { - LOG(ERROR) << "Preload chromium-efl mount failed!"; - return -2; - } - } + result = MountPatchedTPK(); + if (result != SUCCESS) + return FAIL; + // Mount upgrade chromium-efl.img (Optional) - if (!access(LIB_UPGRADE_ROOT_DIR "/version", F_OK)) { - LOG(INFO) << LIB_UPGRADE_ROOT_DIR "/version file already exists."; - } else { - // TODO : Lock here - if (!access(PATH_UPGRADE_CHROMIUM_EFL_IMG, F_OK)) { - LOG(INFO) << PATH_UPGRADE_CHROMIUM_EFL_IMG << " exists."; - mount(true, MOUNT_ARGS_UPGRADE_CHROMIUM); - } else { - LOG(INFO) << "No upgrade chromium-efl found"; - } - // TODO : Unlock here - } + MountUpgradeTPK(); if (is_remove_tpk) { LOG(WARN) << "'-d' option is not supported for tv"; } diff --git a/tizen_src/downloadable/ewk_api_wrapper_generator.py b/tizen_src/downloadable/ewk_api_wrapper_generator.py index 5f7acab..35bac1d 100644 --- a/tizen_src/downloadable/ewk_api_wrapper_generator.py +++ b/tizen_src/downloadable/ewk_api_wrapper_generator.py @@ -12,7 +12,7 @@ FUNC_DEFI = [] # ewk_interface_main.cc defines few APIs (like ewk_init, ewk_shutdown etc.) to setup # and preinitialize dl library parameters. Those APIs are excluded from auto-generated # code to avoid duplicate symbols. -exclude_list = ["ewk_init", "ewk_shutdown", "ewk_set_version_policy"] +exclude_list = ["ewk_init", "ewk_shutdown", "ewk_set_version_policy", "ewk_wait_chromium_ready", "ewk_check_chromium_ready"] # Few ewk headers are directly included in impl, so they are # manually added here diff --git a/tizen_src/downloadable/ewk_interface_main.cc b/tizen_src/downloadable/ewk_interface_main.cc index ff262ae..a99ded0 100644 --- a/tizen_src/downloadable/ewk_interface_main.cc +++ b/tizen_src/downloadable/ewk_interface_main.cc @@ -8,6 +8,8 @@ #if defined(OS_TIZEN_TV_PRODUCT) #define CHROMIUM_UPGRADE_LIB_PATH \ LIB_UPGRADE_ROOT_DIR "/lib/" CHROMIUM_IMPL_LIB_FILE +#include +#include #endif #include @@ -19,12 +21,17 @@ #include "dlog_util.h" +#include +#include + namespace ewk_interface { void* g_impl_lib_handle = nullptr; #if defined(OS_TIZEN_TV_PRODUCT) bool g_upgrade_lib = false; // conservative policy +const char* kChromiumMountReady = "/tmp/.chromium_mount.ready"; +const char* kUWETag = "USE_UWE"; #endif void* open_library() { @@ -38,12 +45,28 @@ void* open_library() { #else const char* path = CHROMIUM_PRELOAD_LIB_PATH; #endif - LOG(INFO) << "Impl Library : " << path; + +#if defined(USE_TTRACE) + traceBegin(TTRACE_TAG_WEB, "dlopen start"); +#endif + + struct timeval begin, end, diff; + struct stat fileStat; + stat(path, &fileStat); + gettimeofday(&begin, NULL); g_impl_lib_handle = dlopen(path, RTLD_LAZY | RTLD_GLOBAL); + gettimeofday(&end, NULL); if (!g_impl_lib_handle) LOG(ERROR) << "dlopen error : " << dlerror(); + timersub(&end, &begin, &diff); + LOG(ERROR) << "Open library done. cost:" + << diff.tv_sec * 1000 + diff.tv_usec / 1000 << "ms\npath:" << path + << " size:" << fileStat.st_size / (1024 * 1024) << "MB"; +#if defined(USE_TTRACE) + traceEnd(TTRACE_TAG_WEB); +#endif // FIXME:Need to call dlclose(), to make sure that the opened chromium-impl // library joins all threads forked by chromium return g_impl_lib_handle; @@ -78,6 +101,38 @@ void* ewk_dlsym(const char* function_name) { return function_addr; } +Eina_Bool ewk_wait_chromium_ready(unsigned int timeout_msec) { +#if defined(OS_TIZEN_TV_PRODUCT) + LOG(INFO) << "ewk_wait_chromium_ready called. timeout : " << timeout_msec; + + int ret = LwipcWaitEvent(kChromiumMountReady, timeout_msec); + if (ret == 0) { + LOG(INFO) << "chromium mount is done."; + return true; + } + LOG(ERROR) << "chromium mount is not ready yet: " + << (ret > 0 ? "timeout" : "fail"); +#else + LOG(WARN) << "Not supported function"; +#endif + return false; +} + +Eina_Bool ewk_check_chromium_ready() { +#if defined(OS_TIZEN_TV_PRODUCT) + LOG(INFO) << "ewk_check_chromium_ready called."; + + if (LwipcIsDone(kChromiumMountReady) > 0) { + LOG(INFO) << "chromium mount is done."; + return true; + } + LOG(ERROR) << "chromium mount is not ready yet."; +#else + LOG(WARN) << "Not supported function"; +#endif + return false; +} + int ewk_set_version_policy(int preference) { #if defined(OS_TIZEN_TV_PRODUCT) int ret = preference; @@ -98,7 +153,7 @@ int ewk_set_version_policy(int preference) { return fp(preference); return ret; #else - LOG(INFO) << "Not supported function"; + LOG(WARN) << "Not supported function"; return 1; #endif } @@ -136,7 +191,7 @@ __attribute__((visibility("default"))) int efl_webprocess_main( // we need to decide upgrade library by command line flag --impl-library // appended in browser process. for (int i = 1; i < argc; ++i) { - if (!strcmp(argv[i], "--impl-library=upgrade")) { + if (!strcmp(argv[i], "--impl-library-upgrade")) { g_upgrade_lib = true; break; } @@ -156,6 +211,21 @@ __attribute__((visibility("default"))) int efl_webprocess_main( #if defined(ENABLE_WRT_JS) __attribute__((visibility("default"))) int WRTMain(int argc, char** argv) { LOG(INFO) << "EWK-INTERFACE : WRTMain called.."; + +#if defined(OS_TIZEN_TV_PRODUCT) + if (access(CHROMIUM_PRELOAD_LIB_PATH, F_OK) != 0 && + !ewk_wait_chromium_ready(10000)) + return 0; + + for (int i = 1; i < argc; ++i) { + if (strncmp(argv[i], kUWETag, strlen(kUWETag)) == 0) { + LOG(INFO) << "USE UWE"; + ewk_set_version_policy(1); // use latest engine + break; + } + } +#endif + typedef int (*func_ptr_t)(int argc, char** argv); func_ptr_t fp = reinterpret_cast(ewk_dlsym("WRTMain")); if (fp) diff --git a/tizen_src/downloadable/wrtjs/wrtjs-1.1.1-1.armv7l.rpm b/tizen_src/downloadable/wrtjs/wrtjs-1.1.1-1.armv7l.rpm new file mode 100644 index 0000000000000000000000000000000000000000..e1b484d6a2baab074d5ae8e1a73e0eb8bbc84f21 GIT binary patch literal 30103 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 literal 0 HcmV?d00001 diff --git a/tizen_src/ewk/efl_integration/command_line_efl.cc b/tizen_src/ewk/efl_integration/command_line_efl.cc index cd0605a..99d1776 100644 --- a/tizen_src/ewk/efl_integration/command_line_efl.cc +++ b/tizen_src/ewk/efl_integration/command_line_efl.cc @@ -28,7 +28,7 @@ #include "ui/ozone/public/ozone_switches.h" #include "url/gurl.h" -const char* kImplLibraryUpgradeFlag = "--impl-library=upgrade"; +const char* kImplLibraryUpgradeFlag = "--impl-library-upgrade"; int CommandLineEfl::argc_ = 0; char** CommandLineEfl::argv_ = nullptr; diff --git a/tizen_src/ewk/efl_integration/common/content_switches_efl.cc b/tizen_src/ewk/efl_integration/common/content_switches_efl.cc index 5e8a04a1..b54374c 100644 --- a/tizen_src/ewk/efl_integration/common/content_switches_efl.cc +++ b/tizen_src/ewk/efl_integration/common/content_switches_efl.cc @@ -16,6 +16,9 @@ const char kInjectedBundlePath[] = "injected-bundle-path"; #if BUILDFLAG(IS_TIZEN_TV) // Save ApplicationType in command line. const char kApplicationType[] = "application-type"; +// Preinit flag set by ewk_set_version_policy() in browser process, which +// helps renderer or zygote to decide which library to load. +const char kImplLibraryUpgrade[] = "impl-library-upgrade"; // CORS enabled URL schemes const char kCORSEnabledURLSchemes[] = "cors-enabled-url-schemes"; // JS plugin mime types diff --git a/tizen_src/ewk/efl_integration/common/content_switches_efl.h b/tizen_src/ewk/efl_integration/common/content_switches_efl.h index 569fe0d..9cf5369 100644 --- a/tizen_src/ewk/efl_integration/common/content_switches_efl.h +++ b/tizen_src/ewk/efl_integration/common/content_switches_efl.h @@ -21,6 +21,9 @@ CONTENT_EXPORT extern const char kInjectedBundlePath[]; #if BUILDFLAG(IS_TIZEN_TV) // Save ApplicationType in command line. CONTENT_EXPORT extern const char kApplicationType[]; +// Preinit flag set by ewk_set_version_policy() in browser process, which +// helps renderer or zygote to decide which library to load. +CONTENT_EXPORT extern const char kImplLibraryUpgrade[]; // CORS enabled url schemes CONTENT_EXPORT extern const char kCORSEnabledURLSchemes[]; // JS plugin mime types diff --git a/tizen_src/ewk/ubrowser/main.cc b/tizen_src/ewk/ubrowser/main.cc index 9ac8c55..57bf57f 100644 --- a/tizen_src/ewk/ubrowser/main.cc +++ b/tizen_src/ewk/ubrowser/main.cc @@ -46,6 +46,10 @@ int desktop_mode = 1; #if defined(TIZEN_VIDEO_HOLE) int video_hw_overlay = 0; #endif +#if BUILDFLAG(IS_TIZEN_TV) +int version_policy = 0; +const unsigned int kWaitTimeout = 5000; +#endif struct AppData { AppData() : browser(nullptr), ewk_initialized(false) { } @@ -75,6 +79,9 @@ void show_help_and_exit(const char* app_name) { printf(" -h, --help Show this help message\n"); printf(" -t, --tizen Run WebView with compliance to Tizen version,\n"); printf(" for example, -t 2.4 or -t 2.3.1 etc.\n"); +#if BUILDFLAG(IS_TIZEN_TV) + printf(" --latest Set version policy latest (1)\n"); +#endif exit(0); } @@ -120,6 +127,9 @@ void parse_options(int argc, char** argv, AppData* data) { #if defined(TIZEN_VIDEO_HOLE) {"overlay", no_argument, &video_hw_overlay, 1}, #endif +#if BUILDFLAG(IS_TIZEN_TV) + {"latest", no_argument, &version_policy, 1}, +#endif {0, 0, 0, 0}}; int option_index = 0; @@ -177,6 +187,18 @@ void parse_options(int argc, char** argv, AppData* data) { if (show_help) show_help_and_exit(argv[0]); +#if BUILDFLAG(IS_TIZEN_TV) + if (!ewk_check_chromium_ready()) { + // If mount is not done yet, You can wait for some time. + if (!ewk_wait_chromium_ready(kWaitTimeout)) + printf("chromium mount is not done.\n"); + } + + // latest version is preferred + printf("Version policy : %d\n", version_policy); + ewk_set_version_policy(version_policy); +#endif + for (int i = optind; i < argc; ++i) if (argv[i][0] != '-') data->urls.push_back(std::string(argv[i])); -- 2.7.4