I received a translation for a software in plain german ("einfaches deutsch"). I am really happy about this because I think accessibility is really important. However, in order to integrate it, I need a code for that language.
I usually use 2-letter ISO codes for that, e.g. en or de. I already knew that you could add a territory code like en-US or de-AT. By reading RFC5646 I found out that what I am looking for is probably a variant subtag like de-simple.
However, these variant subtags need to be registered with IANA. I browsed the language subtag registry there and did not find any variant subtag that matches what I was searching for. So it seems like there is no variant subtag for plain language.
So I see three options here:
I missed something.
I just go ahead and use an unofficial language code such as de-simple.
I register the simple subtag with the IANA.
Which one is it?
There is currently no language tag for simple languages. It has been discussed but there were to many open questions. The best option for now is probably to use a private use subtag, e.g. de-x-simple.
In the meantime, a -simple variant tag has been standardized, so now it is possible to use de-simple. See this blog post for details.
I would suggest that you simply use the language tag on its own. i.e. lang="de" because this is supposed to be the non-specific language tag - which correlates pretty much with "einfaches Deutsch".
If you read the definition of "Leichtes Deutsch" then you will see that it is a style of speaking/writing that is independent of dialect or variant. It is like a style of writing in the same sense that Shakespeare has a style of writing and Dr. Seuss has a style of writing.
In either case, the RFC states quite clearly that subtags must be registered before being used
Variant subtags MUST be registered with IANA according to the
rules in Section 3.5 of this document before being used to form
language tags. In order to distinguish variants from other types
of subtags, registrations MUST meet the following length and
content restrictions
Related
I have an app that is used to track/manage livestock. It currently supports one species, Sheep. We want to begin supporting multiple different species, like Goats, and Cattle. My first thought was to create something similar to NSLocalizedString(text, comment) like SpeciesString(text, species, comment) which would take the English string and the species name and translate the Sheep term Ram to the Cattle term Bull. And internal to that, I could use NSLocalizedString() to then further translate that to the proper language so that in the future I could support multiple languages as well.
I see that I can pass a tableName to NSLocalizedString() so that it will use a different file other than Localizeable.strings and that would allow me to programmatically pull values from a Spanish language file that is focused on Cattle instead of Sheep (something like Localizeable-sheep.strings and Localizeable-cattle.strings), but that won't help me with all of the text that is in the storyboard.
I know that there is built-in support for localization with the storyboard, but the problem I'm having is that when the text comes to my code, for example in viewDidLoad, it will already have been translated to the other language, for example Spanish. I would prefer to find a way to make the text in my views already have the right Language+Species combination by the time it gets to my code. But even if I did rely on programmatically swapping out the strings to use the right Species, the English will already been changed to Spanish and I'll get Carnero instead of Ram and if I try to pass that through to my SpeciesString() it won't match my underlying data, because my underlying data is keying off of the English version of the text.
Is there a way to create a custom language? I've seen this code that is used to change the localization language on the fly, and it works for swapping between en and es, but I can't create my own fake languages like en-sheep and es-sheep.
Is there either:
a) a way to create my own custom language so that the localization system will just pick my correct Language+Species combination?
or
b) a way to tell the Storyboard which table name/filename to pull strings from? So that instead of just having a strings file for my Main.storyboard be called es.lproj/Main.strings but I could instead have
es.lproj/Main-sheep.strings and es.lproj/Main-cattle.strings?
I think my inability to get my "custom language" to work was just an accidental oversight. I created an es-sheep.lproj/Main.strings and used the other SO post to programmatically set my language to es-sheep and it didn't seem to work...
... but it turned out that I had created those directories and files, but forgotten to add them to the project. Once I manually added them to the project, it started working and I was able to use my custom localizations.
I am currently working on building CCD for my project.
I have a problem in code. For example let me take an example of payers section.
CONF-60:A covered party in a policy activity SHOULD contain exactly one participant / participantRole / code, to represent the reason for coverage (e.g. Self, Family dependent, student).
CONF-61:The value for “participant / participantRole / code” in a policy activity’s covered party MAY be selected from ValueSet 2.16.840.1.113883.1.11.19809 PolicyOrProgramCoverageRoleType DYNAMIC.
Above is the line i have copied from hl7 official document.
<code code="SELF" codeSystem="2.16.840.1.113883.5.111" displayName="Self"/>
Its copied from sample ccd document. Going to http://wiki.hl7.de/index.php/2.16.840.1.113883.5.111 we can see there are codes. But my system has values for which i cant find the codes there.
So my question is if cant get the codes there can i just use following and still produce a valid ccd document
<code displayName="Organ Donor"/>
In other words is it necessary to set code and code system in ccd document??
No, that particular line will not be valid and yes - It is necessary. These codes and coding systems are how other systems or programs will recognize the component. They are based in standard language meant to be recognized across EHR platforms and applications - such as LOINC (2.16.840.1.113883.6.1).
The whole purpose of the C-CDA, as the name "continuity of care" would suggest, is the seamless transition of patient information in a recognizable format to other organizations who may not utilize the same EHR.
Take a look at SMART CCDA Scorecard http://ccda-scorecard.smartplatforms.org/static/ccdaScorecard/#/
Also, what system are you using? Your system, especially for those values, should have the correct coding system because the values "SELF, MTH, FTH" are very common for documenting any demographic, insurance or patient related information. Otherwise, it might not meet the requirements of a certified EHR.
When the coding system doesn't contain an appropriate value you can use a NULL value and show the text, although usage of such is disallowed for certain elements. So your example should actually look something like this.
<code nullFlavor="OTH">
<originalText>Organ Donor</originalText>
</code>
But in general you should always try to use a valid concept code where one exists. That's the only way you'll achieve meaningful interoperability with third-party systems.
I'm pretty new to Umbraco, so my question may turn out to be pretty simple, but I wasn't able to find any simple guide on it online.
I'm building a simple website with one domain and structure as follows
Content
- en
-- products
-- contacts
- cs
-- produkty
-- kontakty
and so on. My first question is: since I want to accomplish some nice results in SEO, I need to (i) assign meta language to contents of "en" and "cs" nodes, as well as some keywords. How should I do this?
Second: Say that in the future, I decide to add a new language, ex. Russian. So what I would need to do is to make a copy of the "en" node and its contents while the links included in the newly created copy should be rewritten to point at the copy and not the original (original would be /en/anotherpage, which should be rewritten to /ru/anotherpage). Is this possible?
Thanks,
Ondrej
You could build the content structure as a single root node and then have multiple Language homepage nodes directly beneath the content root.
To assign a language, you could create a custom datatype that simply displays all the .Net cultures, e.g. en-GB, fr-FR etc. Include that data type as a field on the language homepage document type and then output this value in the markup on the homepage and each descendant.
In the Language homepage document type, you can add a textstring property called 'umbracoUrlName'. You can then use this property to override the Url name. E.g. So you could call the page www.domain.com/en/ instead of www.domain.com/en/english-home/
With regards to duplicating the site at a later date, this is a difficult one. If the links are created using data types like the media picker and uComponent's multi node tree picker, then you will have no option but to inherit the links from the copied branch. However, if the links are created dynamically in the Razor or XSLT, then you should be able to make the links relative to the Language homepage or the current page. E.g. in XSLT getting the children of the parent language homepage would be something like $currentPage/ancestors-or-self::* [#level = '2']/child::* . In other words you can avoid hard coding links by using a clever bit of relative traversal.
This should give you a good start on creating multilingual sites in Umbraco
http://our.umbraco.org/wiki/how-tos/running-multi-lingual-sites-under-a-single-domain
If you was to create a Russian version in the future you would do exactly what you have mentioned above, its that easy.
To set the language meta data I would store this in a property on the langauge root node eg: /en/ to get the language page property from any page:
var langNode = new Node(int.Parse(node.Path.Split(',')[1]));
langNode.GetProperty("languageCode");
As for copying the English version to the Russian version and fixing all the links, I'm not aware of anything in umbraco to help you with this, you could write something yourself to find all the links and node references and fix them. you could use the relations API to keep track of what was copied from where to where. You'll need to be aware that you could end up copying nodes more than once.
If you don't have too much data, manually fixing links may be quicker.
I have received a requirement to amend the translations of the 'Add new..' and 'Add existing..' buttons in French. A typical default button is shown below:
The desired new translations are essentially to remove the gender neutrality (if my rather poor school French is correct!). So rather than 'Ajouter un(e)' we have 'Ajouter un'.
Unfortunately these button labels are not included in the standard translations file (Settings -> Customisations -> Export Translations).
Are there any other options available? Given the nature of the requirement, I am happy to consider pretty much any kind of hack. CRM must be generating these values from somewhere, any ideas where they are hidden?
Note: I profoundly disagree with this requirement for fairly obvious reasons and I am sure most people reading this question will as well. However, requirements are what they are and sometimes customers/clients just will not budge. This is one of those cases.
You can define the labels for CRM Ribbon controls. See Use Localized Labels with Ribbons.
In order to make this work, you need to export the ribbon definitions and identify where these controls are defined.
You should be able to define a CustomAction to override the definition of the existing control but include the label text you want to have instead of the default label text. See Define Custom Actions to Modify the Ribbon.
If you are already experienced with customizing the ribbon this shouldn't be too hard, but there is a signifcant learning curve when it comes to customizing the ribbon.
Let say i have a basic tagging system (for a craiglists "clone") such as:
Tag (id, tagname)
ad(id, title, body)
adTag(tag_id, article_id)
This will fit for a non-localized website but what will be the correct aproach for a website that is used by people speaking diferent languages?
Users probably will post ads in diferent languages in one same local area, so, maybe i should make some kind of synonym system that considers "job" and "trabajo" the same tag? But, what about users that only want to see ads in one language?
Catering for tags for all the different languages is probably just going to be trouble. Going with the idea where you treat all variations of a tag as one single type will probably simplify a lot of the issues (so you don't need to keep track of language-tag mappings on the fly, just do the conversion once and be done with it). If the user needs to search by language later on, then just stick a meta-tag for that particular language on when you save the post.
Of course, that leaves the question of what happens when a user uses tags from multiple languages... but I suppose you can always enforce one single language or something.
I can think of two possible solutions:
Add language field: Tag (id, tagname, lang) where you can specify the language for the tag
Change Tag to Tag(id) and use separate table for tag translations tagTranslations(tag_id, lang, tagname)
Note: But I think this is only needed, if your articles have multiple translations.