The Macedonian (mk) language is not taken the translations given in template setup in TYPO3 - typo3-9.x

I am using Typo3 version 9.5.13 with 16 languages, there is a language 'Macedonian(mk)' and I have added a translation for this language with a key in Typo3 template setup, but it's not taking this translation and shows the default translation. This language is not in the Typo3 Supported languages list.
Thank you

In order for TYPO3 to support "mk" locale (and thus, XLF-based label files with "mk.locallang.xlf") one needs to add this line to typo3conf/AdditionalConfiguration.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user']['mk'] = 'Macedonian';
This is the beginning to make it even possible to allow mk for TYPO3 Backend and Frontend - related to label files (XLF).
The other parts (creating a sys_language record, adding an icon, adding "mk" to the site language etc) are still valid and need to be done as well, in order to determine "mk" in a multi-language setup for TYPO3 Frontend.

Add the language to typo3/sysext/core/Configuration/TCA/sys_language.php
Insert the translation of the language to typo3/sysext/core/Resources/Private/Language/db.xlf
Add the locale to typo3/sysext/core/Classes/Localization/Locales.php
Add the flag icon to the IconRegistry: typo3/sysext/core/Classes/Imaging/IconRegistry.php
Add the icon identifier to typo3/sysext/backend/Configuration/SiteConfiguration/site_language.php
You can see an example for Maori here:
https://github.com/TYPO3/TYPO3.CMS/commit/a8c16c45f8a1fce1d858815cef6c1ad83cff5d76

Related

How to remove English language from Odoo v14

I have an odoo server with a website and other modules installed. I have two languages, English and Spanish, and I was trying to make make English Inactive. But I get an error "Cannot deactivate a language that is currently used on a website."
I have change the Language to Spanish for all Users. including odoo boot and other inactive and internal users, And still it shows an error "Cannot deactivate a language that is currently used on a website.". How can I remove English and let only Spanish as a language
Error message clearly says "Cannot deactivate a language that is currently used on a website." So language is set on a website record.
Go to Website menu > Configuration > Websites (Websites menu visible once you turn on developer mode)
Verify all website records and change default language to Spanish.
If everything is good in the website record then Go to Settings > Website and remove English language.
Odoo has overloaded the write function of the res.lang model to avoid disabling a language that is in the list of languages (language_ids) of a web site:
if self.env['website'].search([('language_ids', 'in', self._ids)]):
raise UserError(_("Cannot deactivate a language that is currently used on a website."))
For users and partners, Odoo will check if the lang field is set to the language you want to disable and generate an error:
if vals.get('active') == False:
if self.env['res.users'].search_count([('lang', 'in', lang_codes)]):
raise UserError(_("Cannot deactivate a language that is currently used by users."))
if self.env['res.partner'].search_count([('lang', 'in', lang_codes)]):
raise UserError(_("Cannot deactivate a language that is currently used by contacts."))
In order to disable a language, you must update the language of users and contacts , update the websites language list and the default website language

How do I change the date format in the header when printing with DotNetBrowser?

The only localisation I could find is described here:
https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110018-chromium-language-localization
DotNetBrowser allows configuring Chromium engine with specified
language (two letter code from ISO-639 e.g. "en", "de", "it", etc).
The language will be used for UI text messages localization (e.g. text
on the web page that's displayed when Chromium failed to load URL).
By default, Chromium engine is configured to use .NET application
language that can be received from
theCultureInfo.CurrentUICulture.Name property. To configure Chromium
engine with .NET application language, DotNetBrowser extracts the
language from theCultureInfo.CurrentUICulture.Name property and passes
it to Chromium engine via the --lang Chromium switcher.
If you need to change this default behavior, then you can configure
Chromium engine directly with specified language via Chromium--lang
switcher.
Unfortunately this does not seem to apply any date formatting (which makes sense as it only seems to pay attention to the language "en" and not the locale)
When I print, the header on every page has a date which is in US format. My customers are not in the US and giving them dates in US formats would be a disaster.
Is there any way to set the date format in DotNetBrowser / Chromium?
In Chrome Advanced Settings I can pick English New Zealand and English UK as languages and those settings do affect the printed page headers.
You could specify English UK locale as "en-GB" as shown below:
BrowserPreferences.SetChromiumSwitches("--lang=en-GB");
Do not forget that this switcher should be set before you create any Browser instance.
This article describes how to set Chromium switchers: https://sites.google.com/a/teamdev.com/dotnetbrowser-support/documentation/chromium-switches

How to geotarget website with multiple languages but one link only?

I have a website with two languages, which works in this format:
example.com/changelanguage.xx?lang=de
and redirects to German language
and calling the same URL again like:
example.com/changelanguage.xx?lang=​en
redirects to English language.
The URL remains the same example.com after redirection, just the language changes.
How to add the hreflang attribute here (for Google indexing)?
It’s a bad practice to use the same URL for different (i.e., translated) content.
Consumers, like search engine bots, would use rel-alternate + hreflang markup to find translations. For this to work, you have to provide a different URL for the translated page.
From the perspective of the search engine, it doesn’t work for their users if using the same URL: when they give http://example.com/foobar as search result, they want to make sure that their users get the language the search engine intended (e.g., someone searching for German terms should get the German page). But with your system, this doesn’t work; the search engine user might end up with the English version.
Instead, you should represent the language in the URL, e.g. the language code as first path segment:
http://example.com/en/contact
http://example.com/de/kontact
(Or use different domains/subdomains, or add a query parameter, etc. If you can make sure that translated pages would never have the same URL slug, you could even omit the language codes.)
This is a year late but https://www.bablic.com/ do exactly this!
Furthermore they can automatically detect the language set in the user's browser and automatically show the user your website in that language!

Impresspages language settings in backend

I can't switch language into German. I've done this:
Translate CMS core
ImpressPages tries to download required translations when you install new language. Full list of languages with available translations can be found on Transifex website. These translations are made by our community. You can help too and add some translations.
If default translations are missing in your language or you don't like the default ones, you can add your own translations. Just create a JSON file in files/translations/override directory with required translations. The JSON file uses the same syntax as described in plugin and theme translation cases above. Use Ip-admin-fr.json for administration page translations, and Ip-fr.json for other web site texts (here fr is two character language code). For plugin translations, use your plugin name.
- See more at: http://www.impresspages.org/docs/translations#sthash.nGTMB2um.dpuf
The language in backend is already english. What's to do?
Download https://www.transifex.com/projects/p/impresspages/resource/ip-admin/ German translation and put it as file/translations/original/Ip-admin-de.json
Add 'adminLocale' => 'de' in config.php:
return array(
'adminLocale' => 'de',
'sessionName' => 'ses1477701042', // prevents session conflict when two sites runs on the same server
'developmentEnvironment' => 0, // displays error and debug information. Change to 0 before deployment to production server
'showErrors' => 1, // 0 if you don't wish to display errors on the page
...
...
...
);
We will make this process easier in future releases.
When you add a new language, you actually add new language for the frontend not the backend. There is no graphich interface to change admin language yet. But you can take translations from https://www.transifex.com/projects/p/impresspages/ and put in the right place as described here in the last paragraph http://www.impresspages.org/docs/translations.
Please read on ImpressPages documentation: http://www.impresspages.org/docs/translations
Section "Admin interface translations".

Localization of a DotNetNuke website

I am working on a website in dnn. I want to change the language of website or particular page. So I download the language package for spanish(es-es),chinese(zh-cn) and install them from host. Next when I changed the language of browser then the website language didn't change. Working on dnn 5.0.
Please let me know how I can use language packages in dnn website.
For initial translations and maintenance of DotNetNuke translations, I recommend the use of OmegaT. It handles resx files directly. And content (such as HTML or Blogs) can be downloaded, translated and then uploaded thanks to the APIs of DNN (drop me a note if you need the scripts).
OmegaT stores the translations in it's memory (a TMX file, which is actually some kind of XML). It also uses Google Translate and similars, and has a fast user interface which increases translation speed a lot when compared against continously waiting for DotNetNuke to handle your updated resources.
More info on OmegaT. An example of a translated site and modules: site translated from Dutch into English
You should probably ask this in the DotNetNuke forums: http://www.dotnetnuke.com/tabid/795/default.aspx.
There's one dedicated forum for questions about language packs and localization. You will probably find your answer there: http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/77/scope/threads/Default.aspx
The language packs don't always have translations for everything on the site, especially content that you added yourself. You'll need to do two things to get them working properly:
Go to Admin > Languages, and enable the languages you want to use.
Open the Language Editor and start translating. Under each resource name, you will see an edit text box for the localized value, and a read-only text box for the default value. In most cases, you'll need to translate verbatim what you see under "default value".
We had to write our own menu provider to get the menu to do this - instead of going for the resource files we went for a database solution - other reasons applied to this as well - we also built an interface for doing this - as for things like the text/html module there are some third party builds that allow you to nationalize content. Apollo comes to mind Apollo Software they have some multilanguage modules
The language packs will typically only localize text used by the core such as "Login" and "Settings". It is designed so that you can have a site in a language other than English, not so you can have multiple languages on one site. You can easily have multiple portals, each with a different language.
In order to have multiple locales on one portal you will need to use a third party module or develop your own.