Difference between revisions of "OpasnetUtils/Translate"

From Testiwiki
Jump to: navigation, search
(raakile)
 
(function added)
Line 1: Line 1:
 +
[[Category:Opasnet]]
 +
[[Category:R-tools]]
 +
{{method|moderator=Jouni}}
 +
 +
== Question ==
 +
 +
How to automatically translate texts in ovariables and graphs from one language to another?
 +
 +
== Answer ==
 +
 +
Use the translate function (will be put as a part of OpasnetUtils package at some point). It goes through index names and locations and replaces terms in one language with those of another. The matching terms must be given in a data.frame called ''dictionary'', where each language has a column. If no dictionary exists, the t2b table from this page will be used.
 +
 +
== Rationale ==
 +
 +
Data table for the default dictionary.
 +
 
<t2b name="Dictionary" index="Finnish,Swedish" obs="English" unit="-">
 
<t2b name="Dictionary" index="Finnish,Swedish" obs="English" unit="-">
Builders|Rakennuttaja
+
Rakennuttaja||Builders
Building owner|Rakennuksen omistaja
+
Rakennuksen omistaja||Building owner
EnergySavingPolicy|Energiansäästöpolitiikka
+
Energiansäästöpolitiikka||EnergySavingPolicy
PlantPolicy|Voimalapolitiikka
+
Voimalapolitiikka||PlantPolicy
BAU|Tätä menoa
+
Tätä menoa||BAU
Energy saving moderate|Kohtuullinen energiansäästö
+
Kohtuullinen energiansäästö||Energy saving moderate
Energy saving total|Täysi energiansäästö
+
Täysi energiansäästö||Energy saving total
Apartment houses|Kerrostalot
+
Kerrostalot||Apartment houses
Commercial|Kaupalliset
+
Kaupalliset||Commercial
Detached houses|Omakotitalot
+
Omakotitalot||Detached houses
Educational|Opetusala
+
Opetusala||Educational
Health and social sector|Terveys- ja sosiaaliala
+
Terveys- ja sosiaaliala||Health and social sector
Industrial|Teollisuus
+
Teollisuus||Industrial
Leisure houses|Mökki
+
Mökki||Leisure houses
Offices|Toimistot
+
Toimistot||Offices
Other|Muu
+
Muu||Other
Public|Julkinen
+
Julkinen||Public
Row houses|Rivitalot
+
Rivitalot||Row houses
Sports|Urheilu
+
Urheilu||Sports
Traditional|Perinteinen
+
Perinteinen||Traditional
Old|Vanha
+
Vanha||Old
New|Uusi
+
Uusi||New
Low-energy|Matalaenerginen
+
Matalaenerginen||Low-energy
Passive|Passiivitalo
+
Passiivitalo||Passive
None|Ei mitään
+
Ei mitään||None
General|Yleinen
+
Yleinen||General
Windows|Ikkunat
+
Ikkunat||Windows
Techical systems|Tekniset
+
Tekniset||Techical systems
Sheath reform|Seinät ja katto
+
Seinät ja katto||Sheath reform
Biofuel heat plants|Biolämpölaitokset
+
Biolämpölaitokset||Biofuel heat plants
CHP diesel generators|CHP dieselgeneraattorit
+
CHP dieselgeneraattorit||CHP diesel generators
Deep-drill heat|Syväporattu maalämpö
+
Syväporattu maalämpö||Deep-drill heat
Domestic|Omaan käyttöön
+
Omaan käyttöön||Domestic
Hanasaari|Hanasaari
+
Hanasaari||Hanasaari
Hanasaari biofuel renovation|Hanasaari bio
+
Hanasaari bio||Hanasaari biofuel renovation
Household air heat pumps|Kotitalouden ilmalämpöpumppu
+
Kotitalouden ilmalämpöpumppu||Household air heat pumps
Household air conditioning|Kotitalouden ilmastointi
+
Kotitalouden ilmastointi||Household air conditioning
Household geothermal heat|Kotitalouden maalämpö
+
Kotitalouden maalämpö||Household geothermal heat
Household solar|Kotitalouden aurinkovoima
+
Kotitalouden aurinkovoima||Household solar
Katri Vala cooling|Katri Vala viilennys
+
Katri Vala viilennys||Katri Vala cooling
Katri Vala heat|Katri Vala lämpö
+
Katri Vala lämpö||Katri Vala heat
Kellosaari back-up plant|Kellosaaren varavoimala
+
Kellosaaren varavoimala||Kellosaari back-up plant
Kymijoki River's plants|Kymijoen vesivoimalat
+
Kymijoen vesivoimalat||Kymijoki River's plants
Loviisa nuclear heat|Loviisan ydinvoimalämpö
+
Loviisan ydinvoimalämpö||Loviisa nuclear heat
Neste oil refinery heat|Nesteen öljyjalostamolämpö
+
Nesteen öljyjalostamolämpö||Neste oil refinery heat
Other|Muu
+
Muu||Other
Salmisaari A&B|Salmisaari A&B
+
Salmisaari A&B||Salmisaari A&B
Salmisaari biofuel renovation|Salmisaari biokorjaus
+
Salmisaari biokorjaus||Salmisaari biofuel renovation
Sea heat pump|Merilämpö
+
Merilämpö||Sea heat pump
Sea heat pump for cooling|Merilämpö viilennykseen
+
Merilämpö viilennykseen||Sea heat pump for cooling
Small-scale wood burning|Puun pienpoltto
+
Puun pienpoltto||Small-scale wood burning
Small fuel oil heat plants|Pienet öljylämpölaitokset
+
Pienet öljylämpölaitokset||Small fuel oil heat plants
Small gas heat plants|Pienet kaasulämpölaitokset
+
Pienet kaasulämpölaitokset||Small gas heat plants
Suvilahti power storage|Suvilahden voimavaraaja
+
Suvilahden voimavaraaja||Suvilahti power storage
Suvilahti solar|Suvilahden aurinkovoima
+
Suvilahden aurinkovoima||Suvilahti solar
Vuosaari A&B|Vuosaari A&B
+
Vuosaari A&B||Vuosaari A&B
Vuosaari C biofuel|Vuosaari C bio
+
Vuosaari C bio||Vuosaari C biofuel
Wind mills|Tuulivoimalat
+
Tuulivoimalat||Wind mills
Electricity|Sähkö
+
Sähkö||Electricity
Heat|Lämpö
+
Lämpö||Heat
Biofuel|Biopolttoaine
+
Biopolttoaine||Biofuel
Coal|Kivihiili
+
Kivihiili||Coal
Fuel oil|Polttoöljy
+
Polttoöljy||Fuel oil
Gas|Maakaasu
+
Maakaasu||Gas
Light oil|Kevytöljy
+
Kevytöljy||Light oil
Wood|Puu
+
Puu||Wood
District|Kaukolämpö
+
Kaukolämpö||District
Electricity|Sähkölämmitys
+
Sähkölämmitys||Electricity
Oil|Öljy
+
Öljy||Oil
Other|Muu
+
Muu||Other
Decision_maker|Päätöksentekijä
+
Päätöksentekijä||Decision_maker
Decision|Päätös
+
Päätös||Decision
Option|Vaihtoehto
+
Vaihtoehto||Option
Building|Rakennus
+
Rakennus||Building
Efficiency|Tehokkuus
+
Tehokkuus||Efficiency
Renovation|Korjaukset
+
Korjaukset||Renovation
Plant|Voimala
+
Voimala||Plant
Fuel|Polttoaine
+
Polttoaine||Fuel
Heating|Lämmitys
+
Lämmitys||Heating
 
</t2b>
 
</t2b>
 +
 +
<rcode name="translate" label="Initiate translate (developers only)">
 +
### This is code Op_en7392/translate on page [[OpasnetUtils/Translate]].
 +
 +
library(OpasnetUtils)
 +
 +
translate <- function( # Previously suomenna
 +
x, # object to be translated (ovariable, data.frame, or vector)
 +
lang = NULL, # language to translate to.
 +
dict = NULL # t2b containing the dictionary
 +
) {
 +
if(is.null(lang)) if(exists("language")) lang <- language else lang <- "English"
 +
if(!is.null(dict) | !exists("dictionary")) {
 +
if(is.null(dict)) dict <- "Op_en7392.dictionary"
 +
dictionary <- tidy(opbase.data(dict))
 +
colnames(dictionary)[colnames(dictionary) == "Result"] <- "English"
 +
}
 +
require(reshape2)
 +
dic <- melt(dictionary, id.vars = lang, value.name = "From")
 +
 +
tr <- function(a) {
 +
if(is.numeric(a)) return(a)
 +
if(is.factor(a)) temp <- levels(a) else temp <- a
 +
out <- as.character(dic[[lang]][match(temp, dic$From)])
 +
out[is.na(out)] <- temp[is.na(out)]
 +
if(is.factor(a)) {
 +
out2 <- a; levels(out2) <- out
 +
} else {
 +
out2 <- out
 +
}
 +
return(out2)
 +
}
 +
 +
if(class(x) == "ovariable") {
 +
colnames(x@output) <- tr(colnames(x@output))
 +
for(i in colnames(x@output)) {
 +
x@output[[i]] <- tr(x@output[[i]])
 +
}
 +
}
 +
if(is.data.frame(x)) {
 +
colnames(x) <- tr(colnames(x))
 +
for(i in colnames(x)) {
 +
x[[i]] <- tr(x[[i]])
 +
}
 +
}
 +
if(is.vector(x)) {
 +
x <- tr(x)
 +
}
 +
return(x)
 +
}
 +
 +
objects.store(translate)
 +
cat("Function translate stored.\n")
 +
</rcode>
 +
 +
== See also ==
 +
 +
== Related files ==

Revision as of 13:05, 4 October 2015



Question

How to automatically translate texts in ovariables and graphs from one language to another?

Answer

Use the translate function (will be put as a part of OpasnetUtils package at some point). It goes through index names and locations and replaces terms in one language with those of another. The matching terms must be given in a data.frame called dictionary, where each language has a column. If no dictionary exists, the t2b table from this page will be used.

Rationale

Data table for the default dictionary.

Dictionary(-)
ObsFinnishSwedishEnglish
1RakennuttajaBuilders
2Rakennuksen omistajaBuilding owner
3EnergiansäästöpolitiikkaEnergySavingPolicy
4VoimalapolitiikkaPlantPolicy
5Tätä menoaBAU
6Kohtuullinen energiansäästöEnergy saving moderate
7Täysi energiansäästöEnergy saving total
8KerrostalotApartment houses
9KaupallisetCommercial
10OmakotitalotDetached houses
11OpetusalaEducational
12Terveys- ja sosiaalialaHealth and social sector
13TeollisuusIndustrial
14MökkiLeisure houses
15ToimistotOffices
16MuuOther
17JulkinenPublic
18RivitalotRow houses
19UrheiluSports
20PerinteinenTraditional
21VanhaOld
22UusiNew
23MatalaenerginenLow-energy
24PassiivitaloPassive
25Ei mitäänNone
26YleinenGeneral
27IkkunatWindows
28TeknisetTechical systems
29Seinät ja kattoSheath reform
30BiolämpölaitoksetBiofuel heat plants
31CHP dieselgeneraattoritCHP diesel generators
32Syväporattu maalämpöDeep-drill heat
33Omaan käyttöönDomestic
34HanasaariHanasaari
35Hanasaari bioHanasaari biofuel renovation
36Kotitalouden ilmalämpöpumppuHousehold air heat pumps
37Kotitalouden ilmastointiHousehold air conditioning
38Kotitalouden maalämpöHousehold geothermal heat
39Kotitalouden aurinkovoimaHousehold solar
40Katri Vala viilennysKatri Vala cooling
41Katri Vala lämpöKatri Vala heat
42Kellosaaren varavoimalaKellosaari back-up plant
43Kymijoen vesivoimalatKymijoki River's plants
44Loviisan ydinvoimalämpöLoviisa nuclear heat
45Nesteen öljyjalostamolämpöNeste oil refinery heat
46MuuOther
47Salmisaari A&BSalmisaari A&B
48Salmisaari biokorjausSalmisaari biofuel renovation
49MerilämpöSea heat pump
50Merilämpö viilennykseenSea heat pump for cooling
51Puun pienpolttoSmall-scale wood burning
52Pienet öljylämpölaitoksetSmall fuel oil heat plants
53Pienet kaasulämpölaitoksetSmall gas heat plants
54Suvilahden voimavaraajaSuvilahti power storage
55Suvilahden aurinkovoimaSuvilahti solar
56Vuosaari A&BVuosaari A&B
57Vuosaari C bioVuosaari C biofuel
58TuulivoimalatWind mills
59SähköElectricity
60LämpöHeat
61BiopolttoaineBiofuel
62KivihiiliCoal
63PolttoöljyFuel oil
64MaakaasuGas
65KevytöljyLight oil
66PuuWood
67KaukolämpöDistrict
68SähkölämmitysElectricity
69ÖljyOil
70MuuOther
71PäätöksentekijäDecision_maker
72PäätösDecision
73VaihtoehtoOption
74RakennusBuilding
75TehokkuusEfficiency
76KorjauksetRenovation
77VoimalaPlant
78PolttoaineFuel
79LämmitysHeating

+ Show code

See also

Related files