skiselkov / BetterPushbackC

This is the BetterPushback plugin for X-Plane 11 and X-Plane 12
Other
496 stars 146 forks source link

Add portuguese translation #52

Open ghost opened 6 years ago

ghost commented 6 years ago

Thank you very much, your work is amazing, and i have one request for you, could you please add portuguese translation?

skiselkov commented 6 years ago

I'm sorry, but right now the thing works by following the language setting of X-Plane itself, and X-Plane only comes with these languages:

enum {
     xplm_Language_Unknown                    = 0
    ,xplm_Language_English                    = 1
    ,xplm_Language_French                     = 2
    ,xplm_Language_German                     = 3
    ,xplm_Language_Italian                    = 4
    ,xplm_Language_Spanish                    = 5
    ,xplm_Language_Korean                     = 6
    ,xplm_Language_Russian                    = 7
    ,xplm_Language_Greek                      = 8
    ,xplm_Language_Japanese                   = 9
    ,xplm_Language_Chinese                    = 10
};

I'd have to design some sort of custom language picker GUI. Maybe in the future for a 2.0 version. I'll keep this in mind. Thank you for the suggestion!

ghost commented 6 years ago

Ok, no problem.

skiselkov commented 6 years ago

@NathanCG2 I've implemented a method of selecting custom languages for BP, which would allow me to provide a Portuguese translation, so I'm reopening this now. If you are interested in translating text for me and (even better) recording audio messages, I can provide you with the exact details of what I need.

ghost commented 6 years ago

My english is very simple, but i'll try to translate the messages, If there is another Brazilian in this forum could help me?

OBS: I changed "ground to cockpit" for commandant, better than "ground to cockpit" in Portuguese. And i can't record the audios, i'm sorry.

"Accept plan"
"Cancel plan"
"Connect first"
"Delete segment"
"Click & Drag"
"Move view"
"Click"
"Place segment"
"Mouse wheel"
"Rotate segment"

"Aceitar plano"
"Cancelar plano"
"Conectar primeiro"
"Deletar seguimento"
"Clique & Arraste"
"Mover camera"
"Clique"
"Colocar seguimento"
"Roda do mouse"
"Rotacionar seguimento"

"Tow connected and bypass pin inserted. Release parking brake."

"Rebocador conectado e pino de derivação inserido, Solte o freio de estacionamento"

"Disconnecting tow. Stand by."

"Desconectando rebocador, Espere."

"Tow is disconnected and bypass pin has been removed, hand signal on the left, we'll see you next time and have a safe flight."

"Rebocador desconectado e pino de derivação removido, sinal da mão à esquerda, vejo você em breve e tenha um voo seguro."

"Tow is disconnected and bypass pin has been removed, hand signal on the right, we'll see you next time and have a safe flight."

"Rebocador desconectado e pino de derivação removido, sinal da mão à direita, vejo você em breve e tenha um voo seguro."

"Ground to cockpit. Tow is driving up."

"Comandante, Rebocador a caminho."

"Operation complete. Set parking brake."

"Operação completa. Acione o freio de estacionamento."

"Ground to cockpit. Plan acknowledged, call me through the menu when you are ready."

"Comandante, Plano recebido, me avise pelo menu quando estiver pronto."

"Ground to cockpit. Please show me where you want to go."

"Comandante, por favor, mostre-me onde você quer ir."

"Ok, all doors and hatches are closed, ready to connect. Set parking brake."

"Ok, todas as portas e escotilhas estão fechadas, pronto para conectar, Acione o freio de estacionamento."

"Starting pushback and you may start engines."

"Iniciando pushback você já pode ligar os motores."

"Starting tow and you may start engines."

"Iniciando o reboque você já pode ligar os motores."

"Winching strap and adapter in position. Release parking brake when ready to start pushback."

"Gancho de alça e adaptador em posição. Solte o freio de estacionamento quando estiver pronto para iniciar o pushback".

skiselkov commented 6 years ago

Can you please also translate these texts for me:

jorgeuvo commented 6 years ago

Here it goes my contribution....

"Preferences" "Preferências"

"BetterPushback Preferences" "Preferências do BetterPushback"

"User interface" "Interface do usuário"

"X-Plane's language" "Idioma do X-Plane"

"Ground crew audio" "Audio do pessoal de solo"

"My language only at domestic airports" "Meu idioma somente em aeroportos domésticos"

"My language at all airports" "Meu idioma em todos os aeroportos"

"English at all airports" "Inglês em todos os aeroportos"

"Save preferences" "Salvar preferências"

"Ground crew speaks my language only if the country the airport is in speaks my language. Otherwise the ground crew speaks English with a local accent." "Pessoal de solo fala meu idioma somente se o país do aeroporto fala meu idioma. Caso contrário o pessoal de solo fala inglês com o sotaque local."

"Ground crew speaks my language irrespective of what country the airport is in." "Pessoal de solo fala meu idioma independente do país do aeroporto."

"Ground crew always speaks English with a local accent." "Pessoal de solo sempre fala inglês com o sotaque local."

"Save current preferences to disk. Note: restart X-Plane for changes to take effect." "Salvar preferências. Nota: Reinicie o X-Plane para que as mudanças tenham efeito."

jorgeuvo commented 6 years ago

About the speech accent, Brazil has an accent completely different than any other Portuguese speaker countries. So, I suggest both, Brazilian accent and European accent, available. The European accent is switchable to any Portuguese speaker country, except Brazil.

skiselkov commented 6 years ago

@jorgeuvo Don't worry, the audio selection in BetterPushback already supports this. It first looks for a "lang_COUNTRY" sound set before looking for a generic "lang" set. I implemented this exactly in anticipation of Brazil (and the UK). So if you supply me with Brazilian-accented Portuguese, it's easy to limit to Brazil and apply a generic Portuguese accent elsewhere.

skiselkov commented 6 years ago

@jorgeuvo Could you please also translate the rest of the strings in https://github.com/skiselkov/BetterPushbackC/blob/master/data/po/strings.pot ? This is for the plugins menu and error messages when something goes wrong. I forgot to ask earlier. Thanks, appreciate it!

jorgeuvo commented 6 years ago

No Problem... Here are the strings translations...

msgid "Can't start planner: aircraft not stationary." msgstr "Não pode iniciar o planificador: aeronave não está parada."

msgid "" "Can't start planner: pushback already in progress. Please stop the pushback " "operation first." msgstr "Não pode iniciar o planificador: pushback já em progresso. Por favor primeiro pare a operação de pushback."

msgid "Can't start pushback planner: please set the parking brake first." msgstr "Não pode iniciar o planificador: por favor primeiro acione o freio de estacionamento."

msgid "" "Pushback advisory: you have your radio volume turned very low and may not be " "able to hear ground crew. Please increase your radio volume in the X-Plane " "sound preferences." msgstr "Alerta do Pushback: você tem seu volume de rádio muito baixo e pode não ser capaz de ouvir a equipe de solo. Por favor aumente seu volume de rádio nas preferências de som do X-Plane"

msgid "" "Pushback failure: X-Plane version too old. This plugin requires at least X-" "Plane %s to operate." msgstr "Falha do Pushback: Versão muito antiga do X-Plane. Esse plugin requer versão %s, ou mais recente, do X-Plane para operar."

msgid "Pushback failure: aircraft appears to not have any steerable gears." msgstr "Falha do Pushback: aeronave parece não ter rodas manobráveis."

msgid "" "Pushback failure: aircraft has non-positive wheelbase. Sorry, tail draggers " "aren't supported." msgstr "Falha do Pushback: aeronave não tem a distância entre eixos adequada. Desculpe, trens de pouso convencionais não são suportados"

msgid "Pushback failure: aircraft is incompatible with BetterPushback." msgstr "Falha do Pushback: aeronave incompatível com o BetterPushback,"

msgid "" "Pushback failure: master requested tug \"%s\", which we don't have in our in " "our library. Please sync your tug libraries before trying again." msgstr "Falha do Pushback: Rebocador solicitado \"%s\", não existe em nossa biblioteca. Por favor sincronize suas bibliotecas de rebocadores antes de tentar novamente."

msgid "Pushback failure: no suitable tug for your aircraft." msgstr "Falha do Pushback: rebocador incompatível com sua aeronave."

msgid "" "Pushback failure: smartcopilot attempted to switch master/slave or network " "connection lost. Stopping operation." msgstr "Falha do Pushback: smartcopilot tentou alternar master/slave ou a conexão de rede foi perdida. Parando a operação."

msgid "Start pushback" msgstr "Inicia o pushback"

msgid "Stop pushback" msgstr "Para o pushback"

msgid "Start pushback planner" msgstr "Inicia o planificador do pushback"

msgid "Stop pushback planner" msgstr "Para o planificador do pushback"

msgid "Connect tug before entering pushback plan" msgstr "Conecta o rebocador antes de solicitar um plano de pushback"

msgid "Pre-plan pushback" msgstr "Planificação prévia do pushback"

msgid "Close pushback planner" msgstr "Fecha o planificador do pushback"

msgid "Preferences..." msgstr "Preferências"

msgid "BetterPushback Preferences" msgstr "Preferências do BetterPushback"

msgid "User interface" msgstr "Interface do usuário"

msgid "X-Plane's language" msgstr "Idioma do X-Plane"

msgid "Ground crew audio" msgstr "Audio da equipe de solo"

msgid "My language only at domestic airports" msgstr "Meu idioma somente em aeroportos domésticos"

msgid "My language at all airports" msgstr "Meu idioma em todos os aeroportos"

msgid "English at all airports" msgstr "Inglês em todos os aeroportos"

msgid "Save preferences" msgstr "Salvar preferências"

msgid "Ground crew speaks my language only if the country the airport is in " "speaks my language. Otherwise the ground crew speaks English with a local " "accent." msgstr "Equipe de solo fala meu idioma somente se o país do aeroporto fala meu idioma. Caso contrário a equipe de solo fala inglês com o sotaque local."

msgid "Ground crew speaks my language irrespective of what country the " "airport is in." msgstr "Equipe de solo fala meu idioma independente do país do aeroporto."

msgid "Ground crew always speaks English with a local accent." msgstr "Equipe de solo sempre fala inglês com o sotaque local."

msgid "Save current preferences to disk." msgstr "Salvar preferências no disco."

jorgeuvo commented 6 years ago

About the Portuguese accents, there are no write difference. The differences are only when speaking.

Please let em know if you need more help.

Regards.

ghost commented 6 years ago

@jorgeuvo thank you for contribution! 👍

jorgeuvo commented 6 years ago

@NathanCG2 thank you too Nathan. Please double check my translation and feel free to make any correction.

skiselkov commented 6 years ago

Thanks!

skiselkov commented 6 years ago

Are you guys by any chance going to be sending me recorded audio in the next 1-2 hours? If not, that's fine, I'll publish the next build without it (just Portuguese text). Just asking if I should wait with the next build or not.

jorgeuvo commented 6 years ago

huuum... I have no idea of what to include in the audio file. Should I record with me own voice? Is there a guideline (script) to following ?

skiselkov commented 6 years ago

@jorgeuvo I'm sorry, should have added it here. The text of the voice messages in English is:

The text of the voice messages in English is:

I'd like to ask you to record this in two ways:

  1. Once translated into Portuguese. You don't have translate it word-by-word. Feel free to use local aviation slang and make it sound natural, as if you were talking with a friend on the radio.
  2. Once in English with a Portuguese accent. Here it would be best if you followed the text above as closely as possible, since I might be adding subtitles in the future.

If you don't want to record one or the other, that's fine. Any help is greatly appreciated!

skiselkov commented 6 years ago

Portuguese text & icons in v0.37. Please check if it all looks ok.

jorgeuvo commented 6 years ago

I am recording the audios right now...

jorgeuvo commented 6 years ago

Here are the audio files in Brazilian Portuguese. Audio Brazilian Portuguese.zip

jorgeuvo commented 6 years ago

And now the audio files in English with Brazilian accent. Audio Brazilian English.zip

jorgeuvo commented 6 years ago

@skiselkov I see now that the audio files should be wav format. I record in m4a (mp4) format instead. Do you need that I re-record, or convert them all?

ghost commented 6 years ago

@jorgeuvo @skiselkov , I changed some strings for better understanding.

msgid "Can't start planner: aircraft not stationary." msgstr "Não pode iniciar o planejador: aeronave não está parada."

msgid "" "Can't start planner: pushback already in progress. Please stop the pushback " "operation first." msgstr "Não pode iniciar o planejador: pushback já em progresso. Por favor primeiro pare a operação de pushback."

msgid "Can't start pushback planner: please set the parking brake first." msgstr "Não pode iniciar o planejador: por favor primeiro acione o freio de estacionamento."

msgid "" "Pushback advisory: you have your radio volume turned very low and may not be " "able to hear ground crew. Please increase your radio volume in the X-Plane " "sound preferences." msgstr "Alerta do Pushback: você tem seu volume de rádio muito baixo e pode não ser capaz de ouvir a equipe de solo. Por favor aumente seu volume de rádio nas preferências de som do X-Plane"

msgid "" "Pushback failure: X-Plane version too old. This plugin requires at least X-" "Plane %s to operate." msgstr "Falha do Pushback: Versão muito antiga do X-Plane. Esse plugin requer versão %s, ou mais recente, do X-Plane para operar."

msgid "Pushback failure: aircraft appears to not have any steerable gears." msgstr "Falha do Pushback: aeronave parece não ter rodas manobráveis."

msgid "" "Pushback failure: aircraft has non-positive wheelbase. Sorry, tail draggers " "aren't supported." msgstr "Falha do Pushback: aeronave não tem a distância entre eixos adequada. Desculpe, trens de pouso convencionais não são suportados"

msgid "Pushback failure: aircraft is incompatible with BetterPushback." msgstr "Falha do Pushback: aeronave incompatível com o BetterPushback,"

msgid "" "Pushback failure: master requested tug "%s", which we don't have in our in " "our library. Please sync your tug libraries before trying again." msgstr "Falha do Pushback: Rebocador solicitado "%s", não existe em nossa biblioteca. Por favor sincronize suas bibliotecas de rebocadores antes de tentar novamente."

msgid "Pushback failure: no suitable tug for your aircraft." msgstr "Falha do Pushback: rebocador incompatível com sua aeronave."

msgid "" "Pushback failure: smartcopilot attempted to switch master/slave or network " "connection lost. Stopping operation." msgstr "Falha do Pushback: smartcopilot tentou alternar master/slave ou a conexão de rede foi perdida. Parando a operação."

msgid "Start pushback" msgstr "Iniciar o pushback"

msgid "Stop pushback" msgstr "Parar o pushback"

msgid "Start pushback planner" msgstr "Iniciar o planejador do pushback"

msgid "Stop pushback planner" msgstr "Parar o planejador do pushback"

msgid "Connect tug before entering pushback plan" msgstr "Conectar o rebocador antes de solicitar um plano de pushback"

msgid "Pre-plan pushback" msgstr "Pré-planejamento do pushback"

msgid "Close pushback planner" msgstr "Fechar o planejador do pushback"

msgid "Preferences..." msgstr "Preferências"

msgid "BetterPushback Preferences" msgstr "Preferências do BetterPushback"

msgid "User interface" msgstr "Interface do usuário"

msgid "X-Plane's language" msgstr "Idioma do X-Plane"

msgid "Ground crew audio" msgstr "Audio da equipe do solo"

msgid "My language only at domestic airports" msgstr "Meu idioma somente em aeroportos domésticos"

msgid "My language at all airports" msgstr "Meu idioma em todos os aeroportos"

msgid "English at all airports" msgstr "Inglês em todos os aeroportos"

msgid "Save preferences" msgstr "Salvar preferências"

msgid "Ground crew speaks my language only if the country the airport is in " "speaks my language. Otherwise the ground crew speaks English with a local " "accent." msgstr "Equipe do solo fala meu idioma somente se o país do aeroporto fala meu idioma. Caso contrário a equipe de solo fala inglês com o sotaque local."

msgid "Ground crew speaks my language irrespective of what country the " "airport is in." msgstr "Equipe do solo fala meu idioma independente do país do aeroporto."

msgid "Ground crew always speaks English with a local accent." msgstr "Equipe do solo sempre fala inglês com o sotaque local."

msgid "Save current preferences to disk." msgstr "Salvar preferências no disco."

jorgeuvo commented 6 years ago

@NathanCG2 thanks for the review... Good teamwork!!

jorgeuvo commented 6 years ago

@skiselkov I checked the version 0.37 and it looks good and all on the right place. To make it even better, you can apply the changes suggest above by @NathanCG2

skiselkov commented 6 years ago

@jorgeuvo Thanks! No need to transcode it, I can do that myself. @NathanCG2 Will update the strings to what you sent.

skiselkov commented 6 years ago

Added text & Brazilian audio to v0.38, please test. In the current ruleset matching, Brazilian audio will only play in Brazil and nowhere else (even if the country speaks Portuguese). I hope somebody will provide a "generic" Portuguese audio set to use as a fallback for Portuguese-speaking countries outside of Brazil.

ghost commented 6 years ago

@skiselkov New strings have not been inserted.

ghost commented 6 years ago

New texts don't work yet but the brazilian audios that's perfect!

jorgeuvo commented 6 years ago

@skiselkov one enhancement to do. When pushing back single engine aircrafts, at the moment that it starts the pushback, it says "Starting pushback and you may start engines." however the propeller is too cose of the tug, and it is also not safe to disconnect the tug with engine running. My suggestion is to remove the part of the speech where it says "and you may start engines.", at least for single engine aircrafts. What do you think?

skiselkov commented 6 years ago

@NathanCG2 That's really quite strange, I just tried the exact release version on my machine and it works without a hitch. Can you try to do a fully clean reinstall, just to make sure something isn't badly overwritten. If it still doesn't work, please attach the Log.txt, it might contain some hints as to why the Portuguese strings file didn't load. Also check to make sure that the plugin contains a file at data/po/pt/strings.po and that it lists all the Portuguese text.

skiselkov commented 6 years ago

@jorgeuvo I'm actually thinking of a much more elaborate mechanism to determine when engine start will be safe. I'm not entirely satisfied with the current immediate clearance for engine start either. I'll let you know what I come up with. Delaying engine start for single-engine props is definitely one of those things that is on the table.

jorgeuvo commented 6 years ago

@NathanCG2 and @skiselkov the Portuguese texts are fine in my end, unless if I am missing something. Nathan, can you please be more specific, then I can also double check here.

ghost commented 6 years ago

@skiselkov It's not the same as the translation I made for example i changed inicia to iniciar, i changed Planificação prévia to Pré-planejamento. http://prntscr.com/g57uq8

skiselkov commented 6 years ago

@NathanCG2 I see what you mean, I hadn't switched to the later revisions you sent. I'll correct that in the next build.

skiselkov commented 6 years ago

@NathanCG2 Please check if it's OK now: https://github.com/skiselkov/BetterPushbackC/blob/master/data/po/pt/strings.po

ghost commented 6 years ago

@skiselkov Correct strings.

msgid "" msgstr "" "Last-Translator: jorgeuvo"

msgid "Can't start planner: aircraft not stationary." msgstr "Não pode iniciar o planejador: aeronave não está parada."

msgid "" "Can't start planner: pushback already in progress. Please stop the pushback " "operation first." msgstr "Não pode iniciar o planejador: pushback já em progresso. " "Por favor primeiro pare a operação do pushback."

msgid "Can't start pushback planner: please set the parking brake first." msgstr "Não pode iniciar o planejador: por favor primeiro acione o freio " "de estacionamento."

msgid "" "Pushback advisory: you have your radio volume turned very low and may not be " "able to hear ground crew. Please increase your radio volume in the X-Plane " "sound preferences." msgstr "Alerta do Pushback: você tem seu volume de rádio muito baixo e pode " "não ser capaz de ouvir a equipe de solo. Por favor aumente seu volume de " "rádio nas preferências de som do X-Plane."

msgid "" "Pushback failure: X-Plane version too old. This plugin requires at least X-" "Plane %s to operate." msgstr "Falha do Pushback: Versão muito antiga do X-Plane. Esse plugin requer " "versão %s, ou mais recente, do X-Plane para operar."

msgid "Pushback failure: aircraft appears to not have any steerable gears." msgstr "Falha do Pushback: aeronave parece não ter rodas manobráveis."

msgid "" "Pushback failure: aircraft has non-positive wheelbase. Sorry, tail draggers " "aren't supported." msgstr "Falha do Pushback: aeronave não tem a distância entre eixos adequada. " "Desculpe, trens de pouso convencionais não são suportados."

msgid "Pushback failure: aircraft is incompatible with BetterPushback." msgstr "Falha do Pushback: aeronave incompatível com o BetterPushback."

msgid "" "Pushback failure: master requested tug \"%s\", which we don't have in our in " "our library. Please sync your tug libraries before trying again." msgstr "Falha do Pushback: Rebocador solicitado \"%s\", não existe em nossa " "biblioteca. Por favor sincronize suas bibliotecas de rebocadores antes de " "tentar novamente."

msgid "Pushback failure: no suitable tug for your aircraft." msgstr "Falha do Pushback: rebocador incompatível com sua aeronave."

msgid "" "Pushback failure: smartcopilot attempted to switch master/slave or network " "connection lost. Stopping operation." msgstr "Falha do Pushback: smartcopilot tentou alternar master/slave ou a " "conexão de rede foi perdida. Parando a operação."

msgid "Start pushback" msgstr "Iniciar o pushback"

msgid "Stop pushback" msgstr "Parar o pushback"

msgid "Start pushback planner" msgstr "Iniciar o planejador do pushback"

msgid "Stop pushback planner" msgstr "Parar o planejador do pushback"

msgid "Connect tug before entering pushback plan" msgstr "Conectar o rebocador antes de solicitar um plano de pushback"

msgid "Pre-plan pushback" msgstr "Pré-planejamento do pushback"

msgid "Close pushback planner" msgstr "Fechar o planejador do pushback"

msgid "Preferences..." msgstr "Preferências..."

msgid "BetterPushback Preferences" msgstr "Preferências do BetterPushback"

msgid "User interface" msgstr "Interface do usuário"

msgid "X-Plane's language" msgstr "Idioma do X-Plane"

msgid "Ground crew audio" msgstr "Audio da equipe do solo"

msgid "My language only at domestic airports" msgstr "Meu idioma somente em aeroportos domésticos"

msgid "My language at all airports" msgstr "Meu idioma em todos os aeroportos"

msgid "English at all airports" msgstr "Inglês em todos os aeroportos"

msgid "Save preferences" msgstr "Salvar preferências"

msgid "Ground crew speaks my language only if the country the airport is\n" "in speaks my language. Otherwise the ground crew speaks English\n" "with a local accent." msgstr "Equipe do solo fala meu idioma somente se o país\n" "do aeroporto fala meu idioma. Caso contrário o equipe\n" "de solo fala inglês com o sotaque local."

msgid "Ground crew speaks my language irrespective of what country the " "airport is in." msgstr "Equipe do solo fala meu idioma independente do país do aeroporto."

msgid "Ground crew always speaks English with a local accent." msgstr "Equipe do solo sempre fala inglês com o sotaque local."

msgid "Save current preferences to disk." msgstr "Salvar preferências no disco."

skiselkov commented 6 years ago

@NathanCG2 Please don't send me a full list. Look at the file I linked and tell me which ones are incorrect and need changing.

ghost commented 6 years ago

@skiselkov http://prntscr.com/g5jrkj that strings

skiselkov commented 6 years ago

@NathanCG2 Thanks, will fix those right away.

skiselkov commented 6 years ago

Fix is out in v0.39, please test.

ghost commented 6 years ago

@skiselkov v0.39 that's perfect, thank's!

jorgeuvo commented 6 years ago

@skiselkov tested also here and it is perfect!!!!

skiselkov commented 6 years ago

I'd like to request a few more text translations for a new feature I'm working on:

jorgeuvo commented 6 years ago

"Reconnect" "Reconectar" "Disconnect & hand signals" "Desconectar & sinal com a mão"

"Disconnect tow + headset and switch to hand signals." "Desconecta rebocador + headset e switch no sinal com a mão." "Reconnect tow and await further instructions." "Reconecta rebocador e aguarda instruções."

skiselkov commented 6 years ago

@jorgeuvo Thank you!

ghost commented 6 years ago

@skiselkov use this, i changed Desconecta to Desconectar and Reconecta to Reconectar, it's better

"Disconnect tow + headset and switch to hand signals." "Desconectar rebocador + headset e switch no sinal com a mão." "Reconnect tow and await further instructions." "Reconectar rebocador e aguardar instruções."

skiselkov commented 6 years ago

@NathanCG2 Will change, thanks!

jorgeuvo commented 6 years ago

@NathanCG2 I used the verb in infinitive only at the icons. I understand that the texts are the tips for the icons and they should not be in the infinitive. Don't you agree?

skiselkov commented 6 years ago

@jorgeuvo Just a minor detail, the long texts are for the command descriptions when setting up keyboard bindings. But thanks for reminding that I should probably put tooltips on them as well.