If I understand your question you are working with Managed Metadata? In order to create different labels for different languages you need to install the Language Packs for those languages first. After that you will have the ability to create language specific terms and synonyms for those.
Note: I'm using the free General Business Taxonomy from WAND in the example. And, I've got English and Swedish Language Packs installed. English LCID = 1033 and Swedish = 1053.
Using PowerShell:
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Taxonomy")
If ((Get-PsSnapin |?{$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
$psSnapin = Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null
}
# Get Central Admin Web Application
$caWebApp = (Get-SPWebApplication -IncludeCentralAdministration) | ? { $_.IsAdministrationWebApplication -eq $true }
# Get SPSite reference from Central admin Web Application
$site = Get-SPSite $caWebApp.Url
$taxonomySession = Get-SPTaxonomySession -Site $site
$termStore = $taxonomySession.TermStores["Managed Metadata Service"]
$group = $termStore.Groups["General Business Taxonomy"]
$termSet = $group.TermSets["General Business Taxonomy"]
Create a term specifying Swedish as LCID. Note that this will also create an English term as English is specified as the default language.
$termSet.CreateTerm("___Test___", 1053)
$termStore.CommitAll()
Check the result:
$termSet.Terms["___Test___"].Labels
IsDefaultForLanguage Language Term Value
-------------------- -------- ---- -----
True 1033 Microsoft.SharePoint.Taxonomy.Term ___Test___
True 1053 Microsoft.SharePoint.Taxonomy.Term ___Test___
So, you can see we created a Swedish term and the system added an English term. This is because English is configured as the default language and there must always be a default version of the term.
If you want to update the term, for example changing the English label:
$term = $termStore.GetTerms("___Test___", $false)
foreach ($label in $labels) {
if ($label.Language -eq 1033 -and $label.IsDefaultForLanguage -eq $true) {break;}
}
$label.Value = "___EnglishTest___"
$termStore.CommitAll()
Check the term again (note that the indexer uses the default label for the default language):
$termSet.Terms["___EnglishTest___"].Labels
which gives you:
IsDefaultForLanguage Language Term Value
-------------------- -------- ---- -----
True 1033 Microsoft.SharePoint.Taxonomy.Term ___EnglishTest___
True 1053 Microsoft.SharePoint.Taxonomy.Term ___Test___
Good luck!