From 0652928e9ccff29dd5376de28a50b29d9e6fc4ef Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Wed, 28 Jun 2017 20:03:45 +0000 Subject: [PATCH] LingoHub Update :rocket: Manual push by LingoHub User: Gabriel Engel. Project: Rocket.Chat Made with :heart: by https://lingohub.com --- packages/rocketchat-i18n/i18n/af.i18n.json | 3 + packages/rocketchat-i18n/i18n/ca.i18n.json | 7 +- packages/rocketchat-i18n/i18n/cs.i18n.json | 7 +- packages/rocketchat-i18n/i18n/de.i18n.json | 2 +- packages/rocketchat-i18n/i18n/el.i18n.json | 2 + packages/rocketchat-i18n/i18n/en.i18n.json | 2 +- packages/rocketchat-i18n/i18n/fi.i18n.json | 2 + packages/rocketchat-i18n/i18n/ko.i18n.json | 173 ++++++++++++------ packages/rocketchat-i18n/i18n/ru.i18n.json | 8 +- packages/rocketchat-i18n/i18n/vi-VN.i18n.json | 3 + .../rocketchat-livechat/app/i18n/af.i18n.json | 4 + .../rocketchat-livechat/app/i18n/el.i18n.json | 11 ++ .../rocketchat-livechat/app/i18n/fi.i18n.json | 6 + .../rocketchat-livechat/app/i18n/ko.i18n.json | 2 +- .../app/i18n/vi-VN.i18n.json | 3 + 15 files changed, 171 insertions(+), 64 deletions(-) create mode 100644 packages/rocketchat-i18n/i18n/af.i18n.json create mode 100644 packages/rocketchat-i18n/i18n/vi-VN.i18n.json create mode 100644 packages/rocketchat-livechat/app/i18n/af.i18n.json create mode 100644 packages/rocketchat-livechat/app/i18n/vi-VN.i18n.json diff --git a/packages/rocketchat-i18n/i18n/af.i18n.json b/packages/rocketchat-i18n/i18n/af.i18n.json new file mode 100644 index 000000000000..db1a62920d66 --- /dev/null +++ b/packages/rocketchat-i18n/i18n/af.i18n.json @@ -0,0 +1,3 @@ +{ + "#channel": "#channel" +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/ca.i18n.json b/packages/rocketchat-i18n/i18n/ca.i18n.json index d9b22df36000..51d605174402 100644 --- a/packages/rocketchat-i18n/i18n/ca.i18n.json +++ b/packages/rocketchat-i18n/i18n/ca.i18n.json @@ -751,7 +751,9 @@ "Integrations_for_all_channels": "Introdueix all_public_channels per escoltar a totes les sales públiques, all_private_groups per escoltar a tots els grups privats i all_direct_messages per escoltar tots els missatges directes.", "InternalHubot": "Hubot intern", "InternalHubot_ScriptsToLoad": "Seqüències d'ordres (scripts) per carregar", - "InternalHubot_ScriptsToLoad_Description": "Si us plau, introduiu una llista separada per comes de scripts de https://github.com/github/hubot-scripts/tree/master/src/scripts", + "InternalHubot_ScriptsToLoad_Description": "Si us plau, introduiu una llista separada per comes de scripts per carregar des de la carpeta personalitzada", + "InternalHubot_PathToLoadCustomScripts": "Carpeta des d'on carregar els scripts", + "InternalHubot_reload": "Recarrega els scripts", "InternalHubot_Username_Description": "Ha de ser un nom d'usuari vàlid d'un bot registrat al servidor.", "Invalid_confirm_pass": "La confirmació de la contrasenya no coincideix amb la contrasenya", "Invalid_email": "L'adreça de correu-e és invàlida", @@ -873,7 +875,7 @@ "LDAP_Sync_User_Data": "Sincronitzar dades d'usuari", "LDAP_Sync_User_Data_Description": "Mantenir les dades de l'usuari sincronitzades amb el servidor quan s'identifiqui (ex: nom, adreça de correu, etcètera).", "LDAP_Sync_User_Data_FieldMap": "Mapatge de camps de dades d'usuari", - "LDAP_Sync_User_Data_FieldMap_Description": "Configura com els camps del compte d'usuari (com el de correu-e) s'omplen des del registre LDAP (un cop trobat).
A tall d'exemple, `{\"cn\":\"name\", \"mail\":\"email\"}` triarà el nom des de l'atribut `cn`, i l'adreça-e des de l'atribut `mail`.
Els camps disponibles `name` i `email`.", + "LDAP_Sync_User_Data_FieldMap_Description": "Configura com els camps del compte d'usuari (com el de correu-e) s'omplen des del registre LDAP (un cop trobat).
A tall d'exemple, `{\"cn\":\"name\", \"mail\":\"email\"}` triarà el nom des de l'atribut `cn`, i l'adreça-e des de l'atribut `mail`. Addicionalment, és possible utilitzar variables, per exemple: `{ \"#{givenName} #{sn}\": \"name\", \"mail\": \"email\" }` utilitza una combinació del nom de pila i del cognom per al camp `name` de l'usuari de rocket chat.
Camps disponibles a Rocket.Chat: `name` i `email`.", "LDAP_Sync_Users": "Sincronització d'usuaris", "LDAP_Test_Connection": "Prova la connexió", "LDAP_Unique_Identifier_Field": "Camp d'identificador únic", @@ -1235,6 +1237,7 @@ "Registration_via_Admin": "Registre via Admin", "Regular_Expressions": "Expressions regulars", "Release": "Llançament", + "Reload": "Recarrega", "Remove": "Esborrar", "Remove_Admin": "Treu admin", "Remove_as_moderator": "Treu de moderador", diff --git a/packages/rocketchat-i18n/i18n/cs.i18n.json b/packages/rocketchat-i18n/i18n/cs.i18n.json index 2c48a17fa984..8383333fe6a8 100644 --- a/packages/rocketchat-i18n/i18n/cs.i18n.json +++ b/packages/rocketchat-i18n/i18n/cs.i18n.json @@ -751,7 +751,9 @@ "Integrations_for_all_channels": "Zadejte all_public_channels pro poslouchání nad všemi otevřenými místnostmi, all_private_groups pro všechny soukromé místnosti a all_direct_messages pro poslouchání přímých konverzací", "InternalHubot": "Interní Hubot", "InternalHubot_ScriptsToLoad": "Načíst skripty", - "InternalHubot_ScriptsToLoad_Description": "Prosím, zadejte čárkami oddělený seznam skriptů k načtení z https://github.com/github/hubot-scripts/tree/master/src/scripts", + "InternalHubot_ScriptsToLoad_Description": "Prosím, zadejte čárkami oddělený seznam skriptů k načtení z https://github.com/github/hubot-scripts/tree/master/src/scripts umístěných ve vaší složce", + "InternalHubot_PathToLoadCustomScripts": "Složka odkud načíst skripty", + "InternalHubot_reload": "Znovu načíst skripty", "InternalHubot_Username_Description": "Musí být platné uživatelské jméno jednoho z botů registrovaných na tomto serveru.", "Invalid_confirm_pass": "Hesla nesouhlasí", "Invalid_email": "Zadaný e-mail je neplatný", @@ -873,7 +875,7 @@ "LDAP_Sync_User_Data": "Synchronizace dat", "LDAP_Sync_User_Data_Description": "Udržujte uživatelská data synchronizovaná se serverem po přihlášení (např: jméno, e-mail).", "LDAP_Sync_User_Data_FieldMap": "Mapa polí uživatelských dat", - "LDAP_Sync_User_Data_FieldMap_Description": "Konfiguruje pole uživatelských dat (například e-mailu) v záznamu v LDAP.
Například `{\" CN \":\" name \",\" mail \":\" email \"}` vybere jméno osoby z atributu CN, a jeho e-mail z atributu pošty.
Volné pole obsahují `name` a `email`.", + "LDAP_Sync_User_Data_FieldMap_Description": "Konfiguruje pole uživatelských dat (například e-mailu) v záznamu v LDAP.
Například `{\"cn\":\"name\", \"mail\":\"email\"}` vybere jméno osoby z atributu `cn`, a jeho e-mail z atributu `mail`. Lze používat proměnné například: `{ \"#{givenName} #{sn}\": \"name\", \"mail\": \"email\" }` použije kombinaci křestínho jména a příjmení pro pole `name` v Rocket.Chat.
Dostupná pole Rocket.Chatu jsou `name`, a `email`.", "LDAP_Sync_Users": "Synchronizovat Uživatele", "LDAP_Test_Connection": "Test připojení", "LDAP_Unique_Identifier_Field": "Jedinečný identifikátor", @@ -1235,6 +1237,7 @@ "Registration_via_Admin": "Registrace přes Admin", "Regular_Expressions": "Regulární výrazy", "Release": "Verze", + "Reload": "Znovu načíst", "Remove": "Odstranit", "Remove_Admin": "Odebrat Správce", "Remove_as_moderator": "Odebrat moderátora", diff --git a/packages/rocketchat-i18n/i18n/de.i18n.json b/packages/rocketchat-i18n/i18n/de.i18n.json index 545e16b1e447..8e14837d53d7 100644 --- a/packages/rocketchat-i18n/i18n/de.i18n.json +++ b/packages/rocketchat-i18n/i18n/de.i18n.json @@ -1479,4 +1479,4 @@ "your_message_optional": "ihre optionale Nachricht", "Your_password_is_wrong": "Falsches Passwort", "Your_push_was_sent_to_s_devices": "Die Push-Nachricht wurde an %s Geräte gesendet." -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/el.i18n.json b/packages/rocketchat-i18n/i18n/el.i18n.json index ba47065b0679..3ee98172fd93 100644 --- a/packages/rocketchat-i18n/i18n/el.i18n.json +++ b/packages/rocketchat-i18n/i18n/el.i18n.json @@ -6,6 +6,7 @@ "500": "Εσωτερικό Σφάλμα Διακομιστή", "__username__is_no_longer__role__defined_by__user_by_": "__username__ is no longer __role__ by __user_by__", "__username__was_set__role__by__user_by_": "__username__ was set __role__ by __user_by__", + "Accept": "Αποδοχή", "Access_not_authorized": "Πρόσβαση δεν επιτρέπονται", "Access_Token_URL": "Πρόσβαση Token URL", "Accessing_permissions": "Πρόσβαση δικαιώματα", @@ -135,6 +136,7 @@ "and": "και", "And_more": "Και πιο __length __", "Animals_and_Nature": "Ζώα και Φύση", + "Announcement": "Ανακοίνωση", "API": "API", "API_Analytics": "Analytics", "API_Embed": "Ενσωμάτωση", diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index 1b2888536b9a..70f5c8a30dc9 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -1725,4 +1725,4 @@ "your_message_optional": "your message (optional)", "Your_password_is_wrong": "Your password is wrong!", "Your_push_was_sent_to_s_devices": "Your push was sent to %s devices" -} +} \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/fi.i18n.json b/packages/rocketchat-i18n/i18n/fi.i18n.json index fbfdaa6bc411..8dffc605cc79 100644 --- a/packages/rocketchat-i18n/i18n/fi.i18n.json +++ b/packages/rocketchat-i18n/i18n/fi.i18n.json @@ -6,6 +6,7 @@ "403": "Kielletty", "500": "Sisäinen palvelinvirhe", "@username": "@käyttäjä", + "@username_message": "@käyttäjä ", "__username__is_no_longer__role__defined_by__user_by_": "__username__ ei ole enää __role__ (__user_by__)", "__username__was_set__role__by__user_by_": "__user_by__ muutti käyttäjän __username__ rooliksi __role__ ", "Accept": "Hyväksy", @@ -211,6 +212,7 @@ "Cancel": "Peruuta", "Cancel_message_input": "Peruuta", "Cannot_invite_users_to_direct_rooms": "Et voi kutsua käyttäjiä yksityisviesteihin", + "CAS_Sync_User_Data_FieldMap_Description": "Käytä tätä JSON syötettä rakentaessa sisäiset määritteet (avain) ulkoisista määritteistä (arvo). Ulkoisien määritteiden nimet suljettuna '%' merkkien väliin lisätään arvo teksteihin.
Esimerkiksi, `{\"email\":\"%email%\", \"name\":\"%firstname%, %lastname%\"}`

Määrite kartta on aina lisätty. CAS 1.0:ssa vain `username` määrite on saatavilla. Saatavilla olevat sisäiset määritteet ovat: username, name, email, rooms; rooms on pilkuilla erotettu lista huoneista joihin liittyä käyttäjää lisättäessä, esimerkiksi: {\"rooms\": \"%team%,%department%\"} liittyisi CAS käyttäjät niitä luotaessa heidän tiimi ja osasto kanavalle.", "CDN_PREFIX": "CDN etuliite", "Certificates_and_Keys": "Sertifikaatit ja avaimet", "Changing_email": "Vaihdetaan sähköposti", diff --git a/packages/rocketchat-i18n/i18n/ko.i18n.json b/packages/rocketchat-i18n/i18n/ko.i18n.json index 5d7f599dd39c..28b312bac237 100644 --- a/packages/rocketchat-i18n/i18n/ko.i18n.json +++ b/packages/rocketchat-i18n/i18n/ko.i18n.json @@ -11,11 +11,14 @@ "__username__was_set__role__by__user_by_": "__ 사용자에게 __사용자가 __역할을__ 설정하였습니다", "Accept": "수락", "Accept_incoming_livechat_requests_even_if_there_are_no_online_agents": "상담원이 온라인 상태가 아닌 경우에도 라이브챗을 수락합니다.", + "Accept_with_no_online_agents": "온라인 에이전트가 없는 것을 허용", "Access_not_authorized": "엑세스 권한이 없습니다", "Access_Token_URL": "액세스 토큰 URL", "Accessing_permissions": "접속권한", "Account_SID": "계정 SID", "Accounts": "계정", + "Accounts_AllowAnonymousRead": "익명사용자 읽기 허용", + "Accounts_AllowAnonymousWrite": "익명사용자 쓰기 허용", "Accounts_AllowDeleteOwnAccount": "사용자가 자신의 계정을 삭제할 수 있습니다", "Accounts_AllowedDomainsList": "허용된 도메인 목록", "Accounts_AllowedDomainsList_Description": "허용된 도메인을 쉼표(,)로 구분하기", @@ -31,12 +34,13 @@ "Accounts_BlockedUsernameList": "차단된 사용자 리스트", "Accounts_BlockedUsernameList_Description": "쉼표로 구문된 차단 사용자 리스트 (대소 문자 구분)", "Accounts_CustomFields_Description": "필드 설정에 포함된 필드명을 사용한 올바른 JSON 이여야 합니다.\n\n예:
{\n \"role\": {\n  \"type\": \"select\",\n  \"defaultValue\": \"student\",\n  \"options\": [\"teacher\", \"student\"],\n  \"required\": true,\n  \"modifyRecordField\": {\n   \"array\": true,\n   \"field\": \"roles\"\n  }\n },\n \"twitter\": {\n  \"type\": \"text\",\n  \"required\": true,\n  \"minLength\": 2,\n  \"maxLength\": 10\n }\n} ", + "Accounts_DefaultUsernamePrefixSuggestion": "사용자 기본 접두어 제안", "Accounts_denyUnverifiedEmail": "확인되지 않은 이메일 거부", "Accounts_EmailVerification": "이메일 확인", "Accounts_EmailVerification_Description": "이 기능을 사용하려면 SMTP설정이 올바르게 되어있는지 확인해주십시오.", "Accounts_Enrollment_Email": "등록된 이메일", "Accounts_Enrollment_Email_Default": "

에 오신 것을 환영합니다

[Site_Name]

[Site_URL]로 이동하여 오늘날 최고의 오픈 소스 채팅 솔루션을보십시오!

", - "Accounts_Enrollment_Email_Description": "당신은 각각 사용자의 전체 이름, 이름 또는 성을 위해 [lname], [name], [fname]을 사용할 수 있습니다.
당신은 사용자의 이메일을 [email]을 사용할 수 있습니다.", + "Accounts_Enrollment_Email_Description": "다음의 기호를 사용할 수 있습니다:
", "Accounts_Enrollment_Email_Subject_Default": "[Site_Name] 에 오신 것을 환영합니다 ", "Accounts_ForgetUserSessionOnWindowClose": "창을 닫을때 사용자 세션을 삭제합니다", "Accounts_Iframe_api_method": "API 메소드", @@ -57,7 +61,7 @@ "Accounts_OAuth_Custom_Scope": "범위", "Accounts_OAuth_Custom_Secret": "비밀", "Accounts_OAuth_Custom_Token_Path": "Token 경로", - "Accounts_OAuth_Custom_Token_Sent_Via": "토큰 보낸 비아", + "Accounts_OAuth_Custom_Token_Sent_Via": "보내진 토큰", "Accounts_OAuth_Custom_Username_Field": "사용자 이름 필드", "Accounts_OAuth_Drupal": "듀팔 로그인 이 활성화 되었습니다.", "Accounts_OAuth_Drupal_callback_url": "듀팔 oAuth2 리다이렉트 URI", @@ -67,42 +71,43 @@ "Accounts_OAuth_Facebook_callback_url": "페이스 북 콜백 URL", "Accounts_OAuth_Facebook_id": "Facebook 앱 ID", "Accounts_OAuth_Facebook_secret": "Facebook 암호", - "Accounts_OAuth_Github": "Github 로그인", + "Accounts_OAuth_Github": "OAuth 활성화", "Accounts_OAuth_Github_callback_url": "GitHub의 콜백 URL", "Accounts_OAuth_GitHub_Enterprise": "OAuth 활성화", - "Accounts_OAuth_GitHub_Enterprise_callback_url": "GitHub의 기업 콜백 URL", - "Accounts_OAuth_GitHub_Enterprise_id": "Client ID", + "Accounts_OAuth_GitHub_Enterprise_callback_url": "GitHub Enterprise 의 콜백 URL", + "Accounts_OAuth_GitHub_Enterprise_id": "Client 아이디", "Accounts_OAuth_GitHub_Enterprise_secret": "Client 암호", - "Accounts_OAuth_Github_id": "Github ID", + "Accounts_OAuth_Github_id": "Github 아이디", "Accounts_OAuth_Github_secret": "Github 암호", "Accounts_OAuth_Gitlab": "OAuth 활성화", "Accounts_OAuth_Gitlab_callback_url": "GitLab 콜백 URL", - "Accounts_OAuth_Gitlab_id": "GitLab ID", + "Accounts_OAuth_Gitlab_id": "GitLab 아이디", "Accounts_OAuth_Gitlab_secret": "Client 암호", "Accounts_OAuth_Google": "구글 로그인", "Accounts_OAuth_Google_callback_url": "구글 콜백 URL", - "Accounts_OAuth_Google_id": "구글 ID", + "Accounts_OAuth_Google_id": "구글 아이디", "Accounts_OAuth_Google_secret": "구글 암호", - "Accounts_OAuth_Linkedin": "LinkedIn 로그인", + "Accounts_OAuth_Linkedin": "링크드 인 로그인", "Accounts_OAuth_Linkedin_callback_url": "링크드 인 콜백 URL", - "Accounts_OAuth_Linkedin_id": "LinkedIn ID", - "Accounts_OAuth_Linkedin_secret": "LinkedIn 암호", + "Accounts_OAuth_Linkedin_id": "링크드 인 아이디", + "Accounts_OAuth_Linkedin_secret": "링크드 인 암호", "Accounts_OAuth_Meteor": "Meteor 로그인", - "Accounts_OAuth_Meteor_callback_url": "유성 콜백 URL", + "Accounts_OAuth_Meteor_callback_url": "Meteor 콜백 URL", "Accounts_OAuth_Meteor_id": "Meteor ID", "Accounts_OAuth_Meteor_secret": "Meteor 암호", "Accounts_OAuth_Twitter": "트위터 로그인", "Accounts_OAuth_Twitter_callback_url": "트위터 콜백 URL", - "Accounts_OAuth_Twitter_id": "트위터 ID", + "Accounts_OAuth_Twitter_id": "트위터 아이디", "Accounts_OAuth_Twitter_secret": "트위터 암호", - "Accounts_OAuth_Wordpress": "WordPress 로그인", + "Accounts_OAuth_Wordpress": "워드 프레스 로그인", "Accounts_OAuth_Wordpress_callback_url": "워드 프레스 콜백 URL", - "Accounts_OAuth_Wordpress_id": "WordPress ID", - "Accounts_OAuth_Wordpress_secret": "WordPress 암호", + "Accounts_OAuth_Wordpress_id": "워드 프레스 아이디", + "Accounts_OAuth_Wordpress_secret": "워드 프레스 암호", "Accounts_PasswordReset": "암호 재설정", - "Accounts_OAuth_Proxy_host": "프록시 서버", + "Accounts_OAuth_Proxy_host": "프록시 호스트", "Accounts_OAuth_Proxy_services": "프록시 서비스", "Accounts_Registration_AuthenticationServices_Default_Roles": "인증서비스용 기본 역할", + "Accounts_Registration_AuthenticationServices_Default_Roles_Description": "인증 서비스를 통해서 등록된 사용자는 기본 역할이 주어지게 됩니다.", "Accounts_Registration_AuthenticationServices_Enabled": "인증 서비스에 등록", "Accounts_RegistrationForm": "등록 양식", "Accounts_RegistrationForm_Disabled": "비활성화", @@ -110,14 +115,16 @@ "Accounts_RegistrationForm_Public": "공개", "Accounts_RegistrationForm_Secret_URL": "비밀 URL", "Accounts_RegistrationForm_SecretURL": "등록 양식 비밀 URL", - "Accounts_RegistrationForm_SecretURL_Description": "당신은 당신의 등록 URL에 추가됩니다 임의의 문자열을 제공해야합니다. 예 : https://demo.rocket.chat/register/[secret_hash]", - "Accounts_RequireNameForSignUp": "회원 가입은 이름 필요", + "Accounts_RegistrationForm_SecretURL_Description": "등록 URL에 추가될 임의의 문자열을 제공해야 합니다. 예 : https://demo.rocket.chat/register/[secret_hash]", + "Accounts_RequireNameForSignUp": "회원 가입을 위한 이름이 필요합니다.", + "Accounts_RequirePasswordConfirmation": "비밀번호 확인이 필요합니다.", "Accounts_SetDefaultAvatar": "기본 아바타 설정", + "Accounts_SetDefaultAvatar_Description": "OAuth 계정이나 Gravatar 를 바탕으로 기본 아바타 설정을 시도합니다.", "Accounts_ShowFormLogin": "폼방식 로그인 보기", "Accounts_UseDefaultBlockedDomainsList": "기본 차단 도메인리스트 사용", "Accounts_UseDNSDomainCheck": "DNS 도메인 확인 사용", - "Accounts_UserAddedEmail_Default": "

에 오신 것을 환영합니다

[Site_Name]

[Site_URL]로 이동하여 오늘날 최고의 오픈 소스 채팅 솔루션을보십시오!

[email]과 비밀번호 : [password] 당신은 당신의 이메일을 사용하여 로그인 할 수 있습니다. 당신은 처음 로그인 후 변경해야 할 수 있습니다.", - "Accounts_UserAddedEmail_Description": "다음과 같은 자리를 사용할 수 있습니다 :

", + "Accounts_UserAddedEmail_Default": "

[Site_Name]

에 오신 것을 환영합니다\n

[Site_URL]로 이동하여 오늘날 최고의 오픈 소스 채팅 솔루션을 경험 해 보십시오!

\n

이메일:[email] 과 비밀번호 : [password] 로 로그인 할 수 있습니다. 로그인 후에는 변경하셔야 합니다.", + "Accounts_UserAddedEmail_Description": "다음의 기호를 사용할 수 있습니다:

", "Accounts_UserAddedEmailSubject_Default": "당신이은 [Site_Name] 에 추가되었습니다", "Activate": "활성화", "Activity": "활동", @@ -141,6 +148,7 @@ "Agent_removed": "상담사가 삭제되었습니다", "Alias": "별명", "Alias_Format": "별명 형식", + "Alias_Format_Description": "앨리어스를 가지고 Slack 으로부터 메시지를 임포트 합니다.; %s 는 사용자의 username으로 대치됩니다, 비어있으면 앨리어스를 사용하지 않습니다.", "Alias_Set": "별칭 설정", "All": "모든", "All_channels": "모든 채널", @@ -149,34 +157,49 @@ "Allow_Invalid_SelfSigned_Certs": "잘못된 자체서명 Certs 를 허용합니다", "Allow_Invalid_SelfSigned_Certs_Description": "링크확인 과 프리뷰에 잘못된 자체서명 Certs 를 허용합니다.", "Allow_switching_departments": "방문자가 부서를 변경할 수 있도록 허용합니다", + "Always_open_in_new_window": "항상 새창에서 열기", "Analytics_features_enabled": "기능이 활성화 되었습니다", - "Analytics_features_messages_Description": "사용자가 메시지에 대해 수행 행동과 관련된 사용자 정의 이벤트를 추적합니다.", - "Analytics_features_rooms_Description": "채널 또는 그룹 (삭제두고 작성)에 대한 작업에 관련된 사용자 정의 이벤트를 추적합니다.", + "Analytics_features_messages_Description": "사용자의 메시지에 대해 수행 행동과 관련된 사용자 정의 이벤트를 추적합니다.", + "Analytics_features_rooms_Description": "채널 또는 그룹에 대한 작업에 관련된 사용자 정의 이벤트를 추적합니다. (생성, 채널나감, 삭제)", "Analytics_features_users_Description": "사용자 (암호 재설정 시간, 프로필 사진 변경 등)에 관련 작업에 관련된 사용자 정의 이벤트를 추적합니다.", "Analytics_Google": "구글 애널리틱스", + "Analytics_Google_id": "Tracking ID", "and": "그리고", - "And_more": "그리고 더 __length __", + "And_more": "그리고 __length __만큼 더", "Animals_and_Nature": "동물과 자연", "Announcement": "공지", "API": "API", + "API_Allow_Infinite_Count": "모든것 허용", "API_Allow_Infinite_Count_Description": "REST API 호출이 모든 내용을 하나의 호출에 리턴 할 수 있도록 할까요?", - "API_Analytics": "분석", + "API_Analytics": "분석(에널리틱스)", + "API_CORS_Origin": "CORS Origin", + "API_Default_Count": "기본 카운트", + "API_Default_Count_Description": "아무것도 지정하지 않았을 때의 REST API 결과에 대한 기본 개수", "API_Drupal_URL": "Drupal 서버 URL", "API_Drupal_URL_Description": "예: https://domain.com (마지막의 슬레시 제외)", - "API_Embed": "포함", - "API_EmbedDisabledFor": "사용자에대한 Embed 비활성화", + "API_Embed": "링크 프리뷰 포함", + "API_Embed_Description": "사용자가 웹사이트에 대한 링크를 post 했을때에 그 링크 미리보기 기능의 포함 여부", + "API_EmbedCacheExpirationDays": "캐시 만료 날짜 Embed", + "API_EmbedDisabledFor": "사용자에 대한 Embed 비활성화", "API_EmbedDisabledFor_Description": "쉼표로 구분된 사용자 이름 목록", - "API_EmbedIgnoredHosts": "포함 무시 호스트", - "API_EmbedIgnoredHosts_Description": "예를 들어, 호스트 또는 CIDR 주소의 목록을 쉼표로 구분. 로컬 호스트, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", + "API_EmbedIgnoredHosts": "무시되어진 호스트 Embed", + "API_EmbedIgnoredHosts_Description": "쉼표로 구분된 호스트 또는 CIDR 주소의 목록. 예. localhost, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16", "API_EmbedSafePorts": "안전 포트", - "API_EmbedSafePorts_Description": "미리보기 허용 포트 목록을 쉼표로 구분.", + "API_EmbedSafePorts_Description": "쉼표로 구분된 미리보기를 위한 허용 포트 목록.", + "API_Enable_CORS": "CORS 활성화", + "API_Enable_Direct_Message_History_EndPoint": "Direct Message History Endpoint 활성화", + "API_Enable_Direct_Message_History_EndPoint_Description": "소속되지 않은 다른 유저로 부터 보내진 다이렉트메시지를 보기를 허용하는 'api/v1/im.history.others' 를 활성화 합니다.", + "API_Enable_Shields": "쉴드 활성화", + "API_Enable_Shields_Description": "'/api/v1/shields.svg' 에 있는 쉴드를 활성화", "API_GitHub_Enterprise_URL": "Server URL", "API_GitHub_Enterprise_URL_Description": "예: http://domain.com (마지막 슬래시 제외)", "API_Gitlab_URL": "GitLab URL", + "API_Shield_Types": "쉴드 타입", + "API_Shield_Types_Description": "쉴드의 종류", "API_Token": "API 토큰", "API_Upper_Count_Limit": "최대 레코드 수", "API_User_Limit": "채널에 모든 사용자를 추가하는 사용자 제한", - "API_Wordpress_URL": "WordPress URL", + "API_Wordpress_URL": "워드프레스 URL", "Apiai_Key": "Api.ai 키", "Apiai_Language": "Api.ai 언어", "Appearance": "외관", @@ -187,7 +210,7 @@ "Archive": "아카이브", "are_also_typing": "또한 입력중", "are_typing": "입력 중", - "Are_you_sure": "괜찮아요?", + "Are_you_sure": "확실 합니까?", "Are_you_sure_you_want_to_delete_your_account": "당신은 당신의 계정을 삭제 하시겠습니까?", "at": "...에서", "Auth_Token": "인증 토큰", @@ -221,15 +244,21 @@ "away_male": "자리비움", "Away_male": "자리비움", "Back": "뒤로", - "Back_to_applications": "다시 응용 프로그램", - "Back_to_integrations": "위로 통합에", + "Back_to_applications": "응용 프로그램으로 돌아가기", + "Back_to_integrations": "Integrations 로 돌아가기", + "Back_to_integration_detail": "Integration detail 로 돌아가기", "Back_to_login": "로그인으로 돌아가기", - "Back_to_permissions": "돌아 가기 권한", + "Back_to_permissions": "권한 으로 돌아가기", + "Backup_codes": "백업 코드", + "Beta_feature_Depends_on_Video_Conference_to_be_enabled": "베타 기능. 활성화 될 비디오컨퍼런스 에 의존 함.", "Block_User": "사용자 차단", - "Body": "신체", + "Body": "본문", "bold": "굵게", + "bot_request": "봇(bot) 요청", "BotHelpers_userFields": "사용자 필드", + "BotHelpers_userFields_Description": "bots helper methods 가 접근할 수 있는 사용자 필드에 대한 CSV.", "Branch": "분기", + "Broadcast_Connected_Instances": "연결된 인스턴스 제공(broadcast)", "Bugsnag_api_key": "Bugsnag API 키", "busy": "바쁨", "Busy": "바쁨", @@ -238,14 +267,25 @@ "busy_male": "바쁨", "Busy_male": "바쁨", "by": "으로", + "Content": "내용", "cache_cleared": "캐시가 삭제됨", "Cancel": "취소", "Cancel_message_input": "취소", - "Cannot_invite_users_to_direct_rooms": "객실을 지시하는 사용자를 초대 할 수 없습니다", + "Cannot_invite_users_to_direct_rooms": "direct room 으로 사용자를 초대할 수 없습니다.", "CAS_autoclose": "로그인 팝업을 자동으로 닫음", + "CAS_base_url": "SSO Base URL", + "CAS_base_url_Description": "외부 SSO 서비스에 대한 base URL. 예: https://sso.example.undef/sso/", "CAS_button_color": "로그인 버튼 배경 색상", "CAS_button_label_color": "로그인 버튼 텍스트 색상", "CAS_button_label_text": "로그인 버튼 레이블", + "CAS_enabled": "활성화 됨", + "CAS_Login_Layout": "CAS 로그인 Layout", + "CAS_login_url": "SSO 로그인 URL", + "CAS_login_url_Description": "외부 SSO 서비스에 대한 로그인 URL. 예: https://sso.example.undef/sso/login", + "CAS_popup_height": "로그인 팝업 높이", + "CAS_popup_width": "로그인 팝업 넓이", + "CAS_Sync_User_Data_Enabled": "항상 사용자 데이터 동기화", + "CAS_Sync_User_Data_Enabled_Description": "로그인 시 마다 외부 CAS 사용자 데이터 중 가능한 속성에 대해 항상 동기화. 주: 속성은 계정생성이 될때 마다 항상 동기화 됩니다.", "CDN_PREFIX": "CDN Prefix", "Certificates_and_Keys": "인증서와 키", "Changing_email": "변경 이메일", @@ -282,28 +322,55 @@ "Compact": "콤팩트", "Confirm_password": "암호를 확인하세요", "Conversation": "대화", - "Conversation_closed": "대화 폐쇄 : __comment__합니다.", + "Conversation_closed": "대화 종료 : __comment__.", "Convert_Ascii_Emojis": "이모지를 ASCII로 변환", - "Copied": "복사", - "Copy": "부", + "Copied": "복사된", + "Copy": "복사", "Copy_to_clipboard": "클립 보드에 복사", "COPY_TO_CLIPBOARD": "클립 보드에 복사", "Count": "카운트", "Cozy": "편안한", - "Create": "몹시 떠들어 대다", + "Create": "생성", "Create_A_New_Channel": "새 채널 만들기", "Create_new": "새로 만들기", - "Created_at": "제작", + "Created_at": "만든", "Created_at_s_by_s": " %s에 의해 %s로 만든", + "Created_at_s_by_s_triggered_by_s": "%s 에 트리거 된 %s 에 의해 %s 에 생성됨", + "CROWD_Reject_Unauthorized": "인증되지않은 것 거부", + "CRM_Integration": "CRM Integration", "Current_Chats": "현재 채팅", - "Custom": "관습", + "Current_Status": "현재 상태", + "Custom": "맞춤", + "Custom_Emoji": "사용자 정의 이모지", + "Custom_Emoji_Add": "새 이모지 추가", + "Custom_Emoji_Added_Successfully": "사용자 정의 이모자가 추가 되었습니다.", + "Custom_Emoji_Delete_Warning": "이모지 삭제는 복구 할 수 없습니다", + "Custom_Emoji_Error_Invalid_Emoji": "유효하지 않은 이모지", + "Custom_Emoji_Error_Name_Or_Alias_Already_In_Use": "사용자 정의 이모지나 그 앨리어스가 이미 사용 중입니다.", + "Custom_Emoji_Has_Been_Deleted": "사용자 정의 이모지가 삭제 되었습니다.", + "Custom_Emoji_Info": "사용자 정의 이모지 정보", + "Custom_Emoji_Updated_Successfully": "사용자 정의 이모지가 성공적으로 업데이트 되었습니다", "Custom_Fields": "사용자 정의 필드", "Custom_oauth_helper": "OAuth Provider를 설정할때, 콜백 URL을 알려줘야합니다.
%s
를 사용.", - "Custom_oauth_unique_name": "사용자 정의 OAuth 고유한 이름", - "Custom_Script_Logged_In": "사용자 정의 스크립트 로그인 한 사용자를 위해", - "Custom_Script_Logged_Out": "사용자 정의 스크립트 로그 아웃 사용자를위한", - "Dashboard": "계기반", + "Custom_oauth_unique_name": "사용자 정의 OAuth 고유 이름", + "Custom_Scripts": "사용자 정의 스크립트", + "Custom_Script_Logged_In": "로그인 한 사용자를 위한 사용자 정의 스크립트 ", + "Custom_Script_Logged_Out": "로그 아웃 사용자를 위한 사용자 정의 스크립트 ", + "Custom_Sounds": "사용자 정의 사운드", + "Custom_Sound_Add": "사용자 정의 사운드 추가", + "Custom_Sound_Delete_Warning": "사운드 삭제는 복구 할 수 없습니다.", + "Custom_Sound_Error_Invalid_Sound": "잘못된 사운드", + "Custom_Sound_Error_Name_Already_In_Use": "사용자 정의 사운드 이름이 이미 사용중입니다.", + "Custom_Sound_Has_Been_Deleted": "사용자 정의 사운드가 삭제되었습니다.", + "Custom_Sound_Info": "사용자 정의 사운드 정보", + "Custom_Sound_Saved_Successfully": "사용자 정의 사운드가 성공적으로 저장 되었습니다", + "Custom_Translations": "사용자 정의 번역(해석)", + "Custom_Translations_Description": " Key는 Key와 번역의 딕셔너리가 포함된 언어 인 유효한 JSON 이어야 합니다. 예:
{\n \"en\": {\n  \"Channels\": \"Rooms\"\n },\n \"pt\": {\n  \"Channels\": \"Salas\"\n }\n}", + "CustomSoundsFilesystem": "사용자 정의 사운드 파일시스템", + "Dashboard": "대시보드", "Date": "날짜", + "Date_From": "발신", + "Date_to": "수신", "days": "일", "DB_Migration": "데이터베이스 마이그레이션", "DB_Migration_Date": "데이터베이스 마이그레이션 날짜", @@ -375,14 +442,14 @@ "Error": "오류", "error-action-not-allowed": "__action__ 허용되지 않습니다", "error-application-not-found": "응용 프로그램을 찾을 수 없습니다", - "error-archived-duplicate-name": "이름이 '__room_name__'에 보관 된 채널이있다", + "error-archived-duplicate-name": "보관된 '__room_name__' 채널이 있습니다.", "error-avatar-invalid-url": "잘못된 아바타 URL : __url__", - "error-avatar-url-handling": "오류 __ 사용자 이름 __에 대한 URL (__url__)에서 아바타 설정을 처리하는 동안", - "error-cant-invite-for-direct-room": "직접 객실에 대한 사용자를 초대 할 수 없습니다", + "error-avatar-url-handling": " __ username__에 대한 URL (__url__)에서 아바타 설정을 처리하는 동안 오류발생", + "error-cant-invite-for-direct-room": "direct room 으로 사용자를 초대할 수 없습니다.", "error-could-not-change-email": "이메일을 변경할 수 없습니다", "error-could-not-change-name": "이름을 변경할 수 없습니다", "error-could-not-change-username": "사용자 이름을 변경할 수 없습니다", - "error-delete-protected-role": "보호 역할을 삭제할 수 없습니다", + "error-delete-protected-role": "보호된 역할을 삭제할 수 없습니다", "error-department-not-found": "부서를 찾을 수 없습니다", "error-duplicate-channel-name": "'%s' 채널 이름은 이미 존재합니다.", "error-email-domain-blacklisted": "이메일 도메인이 블랙리스트", @@ -430,7 +497,7 @@ "error-not-allowed": "허용되지 않음", "error-not-authorized": "권한이 없습니다", "error-push-disabled": "푸시을 사용할 수 없습니다", - "error-remove-last-owner": "이 마지막 소유자입니다. 이 중 하나를 제거하기 전에 새 소유자를 설정하십시오.", + "error-remove-last-owner": "마지막 소유자입니다. 제거하기 전에 새 소유자를 설정하십시오.", "error-role-in-use": "그것이 사용 때문에 역할을 삭제할 수 없습니다", "error-role-name-required": "역할 이름이 필요합니다", "error-the-field-is-required": "필드 __field__이 필요합니다.", @@ -578,7 +645,7 @@ "Join_video_call": "화상 통화에 참여", "Joined": "가입", "Jump": "도약", - "Jump_to_first_unread": "첫 번째 읽지로 이동", + "Jump_to_first_unread": "읽지않은 첫 메시지로 이동", "Jump_to_message": "메시지로 이동", "Jump_to_recent_messages": "최근 메시지에 점프", "Katex_Dollar_Syntax": "허용 달러 구문", diff --git a/packages/rocketchat-i18n/i18n/ru.i18n.json b/packages/rocketchat-i18n/i18n/ru.i18n.json index 57b3f42652df..667d1342693c 100644 --- a/packages/rocketchat-i18n/i18n/ru.i18n.json +++ b/packages/rocketchat-i18n/i18n/ru.i18n.json @@ -1072,8 +1072,8 @@ "This_email_has_already_been_used_and_has_not_been_verified__Please_change_your_password": "Такой email уже использовался и не был подтверждён. Измените ваш пароль.", "This_is_a_desktop_notification": "Это уведомление рабочего стола", "This_is_a_push_test_messsage": "Это тестовое push-уведомление", - "This_room_has_been_archived_by__username_": "Этот номер был архивируются __username__", - "This_room_has_been_unarchived_by__username_": "Этот номер был разархивирована по __username__", + "This_room_has_been_archived_by__username_": "__username__ отправил этот чат в архив", + "This_room_has_been_unarchived_by__username_": "__username__ вернул этот чат из архива", "Time_in_seconds": "Время в секундах", "Title": "Заголовок", "Title_bar_color": "Цвет строки заголовка", @@ -1192,7 +1192,7 @@ "WebRTC_Enable_Direct": "Включить для личных сообщений", "WebRTC_Enable_Private": "Включить для приватных чатов", "WebRTC_Servers": "Серверы STUN/TURN", - "WebRTC_Servers_Description": "Список STUN/TURN серверов разделен запятой.
Имя пользователя, пароль и порт разрешены в формате `username:password@stun:host:port` или `username:password@turn:host:port`.", + "WebRTC_Servers_Description": "Список STUN/TURN серверов разделен запятой.
Имя пользователя, пароль и порт разрешены в формате `username:password@stun:host:port` или `username:password@turn:host:port`.", "Welcome": "Добро пожаловать, %s.", "Welcome_to_the": "Добро пожаловать в", "Why_do_you_want_to_report_question_mark": "Почему вы хотите сообщить?", @@ -1231,7 +1231,7 @@ "Your_email_has_been_queued_for_sending": "Ваш email был поставлен в очередь на отправку", "Your_entry_has_been_deleted": "Ваша запись была удалена.", "Your_file_has_been_deleted": "Ваш файл был удалён.", - "Your_mail_was_sent_to_s": "Ваше сообщение было отправлено на %s", + "Your_mail_was_sent_to_s": "Ваше сообщение было отправлено на %s", "Your_password_is_wrong": "Неверный пароль!", "Your_push_was_sent_to_s_devices": "Ваше push-уведомление было отправлено на % устройств." } \ No newline at end of file diff --git a/packages/rocketchat-i18n/i18n/vi-VN.i18n.json b/packages/rocketchat-i18n/i18n/vi-VN.i18n.json new file mode 100644 index 000000000000..037bbed489ee --- /dev/null +++ b/packages/rocketchat-i18n/i18n/vi-VN.i18n.json @@ -0,0 +1,3 @@ +{ + "#channel": "kênh " +} \ No newline at end of file diff --git a/packages/rocketchat-livechat/app/i18n/af.i18n.json b/packages/rocketchat-livechat/app/i18n/af.i18n.json new file mode 100644 index 000000000000..bb2c6a63ae4a --- /dev/null +++ b/packages/rocketchat-livechat/app/i18n/af.i18n.json @@ -0,0 +1,4 @@ +{ + "Additional_Feedback": "Bykomende terugvoer", + "No": "Nee" +} \ No newline at end of file diff --git a/packages/rocketchat-livechat/app/i18n/el.i18n.json b/packages/rocketchat-livechat/app/i18n/el.i18n.json index 724ee91211ea..d6cb296fd414 100644 --- a/packages/rocketchat-livechat/app/i18n/el.i18n.json +++ b/packages/rocketchat-livechat/app/i18n/el.i18n.json @@ -1,13 +1,21 @@ { "Additional_Feedback": "Πρόσθετα Σχόλια", "Appearance": "Εμφάνιση", + "Are_you_sure_do_you_want_end_this_chat": "Είσαι σίγουρος ότι θες να τερματίσεις τη συνομιλία;", + "Cancel": "Ακύρωση", + "Change": "Αλλαγή", + "Chat_ended": "Η συνομιλία τελείωσε!", + "Close_menu": "Κλείσιμο μενού", "Conversation_finished": "Η συνομιλία τελείωσε", + "End_chat": "Τερματισμός συνομιλίας", "How_friendly_was_the_chat_agent": "Πόσο φιλικός ήταν ο εκπρόσωπος μας;", "How_knowledgeable_was_the_chat_agent": "Πώς γνώστης ήταν ο εκπρόσωπος μας;", "How_responsive_was_the_chat_agent": "Πώς ανταποκρίσιμος ήταν ο εκπρόσωπος μας;", "How_satisfied_were_you_with_this_chat": "Πόσο ικανοποιημένοι είστε με αυτήν την συνομιλία;", "Installation": "Εγκατάσταση", "New_messages": "Νέα μηνύματα", + "No": "Όχι", + "Options": "Επιλογές", "Please_answer_survey": "Αφιερώστε λίγο χρόνο για να απαντήσετε σε μια σύντομη έρευνα σχετικά με αυτή τη συνομιλία", "Please_fill_name_and_email": "Παρακαλούμε συμπληρώστε το όνομα και το e-mail", "Powered_by": "Powered by", @@ -19,11 +27,14 @@ "Survey_instructions": "Βαθμολογήστε κάθε ερώτηση, σύμφωνα με την ικανοποίησή σας, 1 που σημαίνει ότι θα είναι εντελώς ανικανοποίητοι και 5 σημαίνει ότι είστε απόλυτα ικανοποιημένοι.", "Thank_you_for_your_feedback": "Ευχαριστούμε για την ανταπόκρισή σας", "Thanks_We_ll_get_back_to_you_soon": "Ευχαριστώ! Θα επικοινωνήσουμε μαζί σας σύντομα.", + "transcript_sent": "Το αντίγραφο της συνομιλίας στάλθηκε", "Type_your_email": "Πληκτρολογήστε το email σας", "Type_your_message": "Πληκτρολογήστε το μήνυμά σας", "Type_your_name": "Πληκτρολογήστε το όνομά σας", "User_joined": "εντάχθηκε χρήστη", "User_left": "αριστερή χρήστη", "We_are_offline_Sorry_for_the_inconvenience": "Είμαστε εκτός σύνδεσης. Συγγνώμη για την ταλαιπωρία.", + "Yes": "Ναι", + "You": "Εσύ", "You_must_complete_all_fields": "Πρέπει να συμπληρώσετε όλα τα πεδία" } \ No newline at end of file diff --git a/packages/rocketchat-livechat/app/i18n/fi.i18n.json b/packages/rocketchat-livechat/app/i18n/fi.i18n.json index d9797d678dff..9efa433e873f 100644 --- a/packages/rocketchat-livechat/app/i18n/fi.i18n.json +++ b/packages/rocketchat-livechat/app/i18n/fi.i18n.json @@ -2,8 +2,11 @@ "Additional_Feedback": "Lisäpalaute", "Appearance": "Ulkoasu", "Are_you_sure_do_you_want_end_this_chat": "Haluatko lopettaa tämän keskustelun?", + "Are_you_sure_do_you_want_end_this_chat_and_switch_department": "Oletko varma että haluat lopettaa tämän keskustelun ja vaihtaa osastoa?", "Cancel": "Peruuta", + "Change": "Muuta", "Chat_ended": "Keskustelu lopetettu!", + "Choose_a_new_department": "Valitse uusi osasto", "Close_menu": "Sulje valikko", "Conversation_finished": "Keskustelu päättynyt", "End_chat": "Lopeta keskustelu", @@ -16,9 +19,12 @@ "No": "Ei", "Options": "Valinnat", "Please_answer_survey": "Käytä hetki vastataksesi pikakyselyyn tästä chatista", + "Please_choose_a_department": "Ole hyvä ja valitse uusi osasto", "Please_fill_name_and_email": "Täytä nimi ja sähköpostiosoite", "Powered_by": "Palvelun tarjoaa", "Select_a_department": "Valitse osasto", + "Switch_department": "Vaihda osastoa", + "Department_switched": "Osasto vaihdettu", "Send": "Lähetä", "Skip": "Ohita", "Start_Chat": "Aloita Chat", diff --git a/packages/rocketchat-livechat/app/i18n/ko.i18n.json b/packages/rocketchat-livechat/app/i18n/ko.i18n.json index 04b448a9da55..4b8d8bc0aaa2 100644 --- a/packages/rocketchat-livechat/app/i18n/ko.i18n.json +++ b/packages/rocketchat-livechat/app/i18n/ko.i18n.json @@ -1,6 +1,6 @@ { "Additional_Feedback": "추가 의견", - "Appearance": "모양", + "Appearance": "보기", "Are_you_sure_do_you_want_end_this_chat": "이 채팅을 정말 끝내시겠습니까?", "Are_you_sure_do_you_want_end_this_chat_and_switch_department": "현재 진행중인 채팅을 종료하고 부서를 변경하시겠습니까?", "Cancel": "취소", diff --git a/packages/rocketchat-livechat/app/i18n/vi-VN.i18n.json b/packages/rocketchat-livechat/app/i18n/vi-VN.i18n.json new file mode 100644 index 000000000000..c76b13117526 --- /dev/null +++ b/packages/rocketchat-livechat/app/i18n/vi-VN.i18n.json @@ -0,0 +1,3 @@ +{ + "Additional_Feedback": "Phản hồi bổ sung" +} \ No newline at end of file