From f2682ee792683351825cedb37ade7c9851e56d28 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 2 Nov 2023 15:26:32 +0000 Subject: [PATCH 01/12] Translated using Weblate (Korean) Currently translated at 82.7% (433 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/ko/ --- i18n/ko.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/ko.yml b/i18n/ko.yml index 53bfc40c3..ddfecc6e5 100644 --- a/i18n/ko.yml +++ b/i18n/ko.yml @@ -290,6 +290,7 @@ components: multipleOptions: 여러 옵션 orAlternatives: 또는 같은 방향의 다른 경로 timeWalking: "{time} 걷기" + arriveAt: 도착한다 MobileOptions: header: 검색 옵션 설정 NarrativeItinerariesHeader: From 132dac1475b09a70a77c4e55d7b9edb46b16899b Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Wed, 8 Nov 2023 13:03:08 +0000 Subject: [PATCH 02/12] Translated using Weblate (French) Currently translated at 98.8% (517 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/fr/ --- i18n/fr.yml | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/i18n/fr.yml b/i18n/fr.yml index af03d9b33..b024741b8 100644 --- a/i18n/fr.yml +++ b/i18n/fr.yml @@ -2,7 +2,8 @@ _id: fr _name: Exemple de traduction pour OTP-react-redux en français actions: callTaker: - callQuerySaveError: "Erreur lors de l'enregistrement des requêtes pour l'appel : {err}" + callQuerySaveError: "Erreur lors de l'enregistrement des requêtes pour l'appel + : {err}" callSaveError: "Impossible d'enregistrer l'appel : {err}" checkSessionError: "Erreur durant la session d'authentification : {err}" couldNotFindCallError: >- @@ -17,9 +18,11 @@ actions: true {aller} other {retour} } planifié préalablement pour cette demande. Voulez-vous continuer ? - deleteItinerariesError: "Erreur lors de la suppression du trajet pour le groupe :" + deleteItinerariesError: "Erreur lors de la suppression du trajet pour le groupe + :" deleteNoteError: "Erreur lors de la suppression d'une note sur le groupe :" - editSubmitterNotesError: "Erreur lors de la modification des notes du demandeur :" + editSubmitterNotesError: "Erreur lors de la modification des notes du demandeur + :" fetchFieldTripError: "Erreur de chargement du groupe scolaire : {err}" fetchFieldTripsError: "Erreur lors du chargement des groupes scolaires : {err}" fetchTripsForDateError: >- @@ -43,7 +46,8 @@ actions: Pour utiliser votre emplacement actuel, permettez-en l'accès depuis votre navigateur, et ouvrez de nouveau cette page. - geolocationNotSupportedError: La géolocalisation n'est pas prise en charge par votre navigateur. + geolocationNotSupportedError: La géolocalisation n'est pas prise en charge par + votre navigateur. unknownPositionError: Erreur inconnue lors de la détection de votre emplacement. userDeniedPermission: Refusé par l'utilisateur map: @@ -57,7 +61,8 @@ actions: Le message de vérification de votre adresse e-mail a été envoyé de nouveau. genericError: "Une erreur s'est produite : {err}" - itineraryExistenceCheckFailed: Erreur lors de la vérification de la validité du trajet choisi. + itineraryExistenceCheckFailed: Erreur lors de la vérification de la validité du + trajet choisi. mustAcceptTermsToSavePlace: >- Veuillez accepter les conditions d'utilisation (dans Mon compte) pour enregistrer des lieux. @@ -261,8 +266,8 @@ components: BeforeSignInScreen: mainTitle: Connexion en cours message: > - Pour accéder à cette page, vous devez vous connecter. Veuillez patienter - pendant que nous vous redirigeons vers la page de connexion... + Pour accéder à cette page, vous devez vous connecter. Veuillez patienter pendant + que nous vous redirigeons vers la page de connexion... CallTakerPanel: advancedOptions: Options avancées groupSize: "Taille du groupe :" @@ -348,8 +353,10 @@ components: header: Options de recherche NarrativeItinerariesHeader: changeSortDir: Changer l'ordre de tri - howToFindResults: Pour afficher les résultats, utilisez l'en-tête Trajets trouvés plus bas. - itinerariesFound: "{itineraryNum, plural, one {# trajet trouvé} other {# trajets trouvés} }" + howToFindResults: Pour afficher les résultats, utilisez l'en-tête Trajets trouvés + plus bas. + itinerariesFound: "{itineraryNum, plural, one {# trajet trouvé} other {# trajets + trouvés} }" numIssues: "{issueNum, plural, one {# problème} other {# problèmes} }" resultsSortedBy: >- Résultats triés par {sortSelected}. Pour modifier l'ordre, utilisez le @@ -666,7 +673,8 @@ components: unknownState: État du trajet inconnu untogglePause: Reprendre inactive: - description: Reprenez le suivi pour obtenir des dernières conditions de votre trajet. + description: Reprenez le suivi pour obtenir des dernières conditions de votre + trajet. heading: Suivi suspendu nextTripNotPossible: description: > @@ -685,7 +693,8 @@ components: déterminées. heading: Conditions du trajet indéterminées snoozed: - description: Reprenez le suivi pour obtenir des dernières conditions de votre trajet. + description: Reprenez le suivi pour obtenir des dernières conditions de votre + trajet. heading: Suivi suspendu jusqu'à demain upcoming: nextTripBegins: >- From c00e6f4011be135436854c4f1babd65ef00a6530 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 17:03:29 +0000 Subject: [PATCH 03/12] Translated using Weblate (French) Currently translated at 100.0% (523 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/fr/ --- i18n/fr.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/fr.yml b/i18n/fr.yml index b024741b8..84589d01e 100644 --- a/i18n/fr.yml +++ b/i18n/fr.yml @@ -403,13 +403,13 @@ components: header: Aucun arrêt a proximité NO_TRANSIT_CONNECTION: body: >- - Aucune desserte en transports n'a été trouvée entre vos points de départ - et d'arrivée pour la date indiquée. + Aucune desserte en transports n'a été trouvée entre vos points de départ et + d'arrivée pour la date indiquée. header: Aucune desserte NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: body: >- - Une desserte en transports a été trouvée mais ne correspond pas à vos - critères. Veuillez ajuster votre recherche. + Une desserte en transports a été trouvée mais ne correspond pas à vos critères. + Veuillez ajuster votre recherche. header: Aucune desserte selon vos critères OUTSIDE_BOUNDS: body: >- From de6486e75d52556e92de64e76ee3a256021aa932 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 20:00:33 +0000 Subject: [PATCH 04/12] Translated using Weblate (Korean) Currently translated at 96.3% (504 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/ko/ --- i18n/ko.yml | 91 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 83 insertions(+), 8 deletions(-) diff --git a/i18n/ko.yml b/i18n/ko.yml index ddfecc6e5..78b0ad31c 100644 --- a/i18n/ko.yml +++ b/i18n/ko.yml @@ -33,6 +33,9 @@ actions: location: geolocationNotSupportedError: 귀하의 브라우저에서 지원되지 않는 지리적 위치 unknownPositionError: 위치를 가져오는 중 알 수 없는 오류가 발생했습니다 + userDeniedPermission: 사용자가 허용 거부 + deniedAccessAlert: "귀하의 위치로 액세스가 차단되었습니다.\n현재 위치를 사용하려면, 브라우저에서 위치 사용을 허용한 후 페이지를 + 재로드하십시오. \n" map: currentLocation: (현재 위치) user: @@ -47,6 +50,9 @@ actions: smsInvalidCode: 입력한 코드가 유효하지 않습니다. 다시 시도하세요. smsResendThrottled: 확인 SMS가 1분 미만 전에 표시된 전화번호로 전송되었습니다. 잠시 후 다시 시도하세요. smsVerificationFailed: 번호가 확인되지 않습니다. 입력한 코드가 만료되었을 수 있습니다. 새 코드를 요청한 후 다시 시도하세요. + mustBeLoggedInToSavePlace: 위치를 저장하려면 로그인하십시오. + mustAcceptTermsToSavePlace: 위치를 저장하려면 사용 약관(내 계정 아래)을 수락하십시오. + placeRemembered: 이 장소에 대한 설정이 저장되었습니다. common: coordinates: "{lat}, {lon}" dateExpressions: @@ -92,12 +98,14 @@ common: save: 저장 startOver: 다시 시작 "yes": 예 + submitting: 제출 중… itineraryDescriptions: calories: "{calories, number} 칼로리" noItineraryToDisplay: 표시할 일정이 없습니다. relativeCo2: | {co2} CO₂ 를 자동차보다 {isMore, select, true {더} other {덜} } 사용합니다 transfers: "{transfers, plural, =0 {} other {# 전송}}" + fareUnknown: 운임 정보 없음 modes: bicycle_rent: 공유자전거 bike: 자전거 @@ -146,6 +154,7 @@ common: tripDurationFormat: >- {hours, plural, =0 {} other {# 시간 }}{minutes} 분 { seconds, plural, =0 {} other {# 초}} + linkOpensNewWindow: (새 창 열림) components: A11yPrefs: accessibilityRoutingByDefault: 접근 가능한 트립 선호를 기본 설정으로 @@ -158,6 +167,8 @@ components: AdvancedOptions: bannedRoutes: 금지된 경로 선택… preferredRoutes: 선호 경로 선택… + bikeTolerance: 자전거 허용 오차 + walkTolerance: 걷기 내성 AfterSignInScreen: mainTitle: 경로 재설정 중... message: 몇 초 후에도 페이지가 로드되지 않는 경우, 여기를 클릭하십시오. @@ -211,11 +222,13 @@ components: shortTitle: 트립 계획 BatchSearchScreen: header: 트립 계획 + modeSelectorLabel: 이동 수단을 선택합니다 BatchSettings: destination: 목적지 origin: 출발지 planTripTooltip: 트립 계획 validationMessage: "트립 계획을 위해 다음 필드를 정의하세요: {issues}" + invalidModeSelection: 선택된 수단을 사용해 이동편을 계획할 수 없습니다. 수단 선택에 대중교통을 포함해 보십시오. BeforeSignInScreen: mainTitle: 로그인 중 message: | @@ -239,6 +252,7 @@ components: DefaultItinerary: clickDetails: 클릭하여 자세한 내용 보기 multiModeSummary: "{accessMode} + {transitMode}" + nonTransit: 대체 옵션 DeleteUser: deleteMyAccount: 내 계정 삭제 ErrorMessage: @@ -271,6 +285,7 @@ components: minMaxFare: "{minTotalFare} - {maxTotalFare}" LiveStopTimes: autoRefresh: 도착을 자동으로 새로 고침? + refresh: 도착 시간 새로고침 LocationSearch: enterLocation: 위치 입력 setDestination: 목적지 선택 @@ -290,17 +305,16 @@ components: multipleOptions: 여러 옵션 orAlternatives: 또는 같은 방향의 다른 경로 timeWalking: "{time} 걷기" - arriveAt: 도착한다 + arriveAt: 도착합니다 + singleModeItineraryDescription: '{time} {mode} 일정표' + originallyScheduledTime: (기존 {originalTime}) MobileOptions: header: 검색 옵션 설정 NarrativeItinerariesHeader: changeSortDir: 정렬 방향 변경 itinerariesFound: "{itineraryNum} 개의 여정을 찾았습니다" numIssues: |- - {issueNum, plural, - one {# 문제} - other {# 문제} - } + {issueNum} 문제 searching: 옵션을 찾고 있는 중... selectArrivalTime: 도착 시간 selectBest: 가장 좋은 옵션 @@ -309,6 +323,10 @@ components: selectDuration: 기간 selectWalkTime: 도보 시간 viewAll: 모든 옵션 보기 + sortResults: 결과 정렬 + howToFindResults: 결과를 보려면, 아래 검색된 일정표 제목을 보십시오. + resultsSortedBy: 이동편 결고가 현재 {sortSelected}(으)로 정렬되었습니다. 결과 정렬 방식을 변경하려면, 아래 "결과 + 정렬" 버튼을 사용하십시오. NavLoginButton: help: 지원 myAccount: 내 계정 @@ -325,6 +343,8 @@ components: header: 콘텐츠를 찾을 수 없음 NotificationPrefsPane: notificationChannelPrompt: "저장된 여행의 알림을 받는 방법:" + devicesRegistered: '{count, plural, one {# device} other {# devices}} 등록됨' + noDeviceForPush: 푸시 알림을 이용하려면 모바일 앱을 사용해 기기를 등록하십시오. PhoneNumberEditor: changeNumber: 번호 변경 invalidCode: 확인 코드 6 자리를 입력하세요. @@ -340,6 +360,7 @@ components: 휴대폰의 SMS 메시지 앱에서 인증 코드를 확인하고 아래에 코드를 입력하세요(코드는 10분 후에 만료됩니다). verified: 확인됨 verify: 확인 + phoneNumberSubmitted: 전화번호 {phoneNumber} 이/가 성공적으로 제출되었습니다. Place: deleteThisPlace: 이 장소 삭제 enterAlert: | @@ -351,6 +372,7 @@ components: locationPlaceholder: "{placeName} 위치 검색" nameExample: 내 커피숍 namePrompt: "지명:" + locationTypePrompt: '위치 유형:' PlanFirstLastButtons: first: 처음 last: 마지막 @@ -365,8 +387,8 @@ components: toggleMap: 지도 토글 RealtimeAnnotation: delaysShownInResults: > - 귀하의 여행 결과는 실시간 정보를 기반으로 조정되었습니다. 정상적인 상황에서 이 여행은 다음 경로를 사용하여 - {normalDuration} 이 소요됩니다: + 귀하의 여행 결과는 실시간 정보를 기반으로 조정되었습니다. 정상적인 상황에서 이 여행은 다음 경로를 사용하여 {normalDuration} + 이 소요됩니다: {routes} serviceUpdate: 서비스 업데이트 RealtimeStatusLabel: early: "{minutes} 일찍" @@ -391,6 +413,7 @@ components: operatedBy: "{agencyName}에서 운영하는 서비스" selectADirection: 방향 선택… stopsTo: 방면 + headsignTo: '{headsign} ({lastStop})' RouteViewer: agencyFilter: 에이전시 필터 allAgencies: 모든 에이전시 @@ -402,6 +425,9 @@ components: noFilteredRoutesFound: 필터와 일치하는 경로가 없습니다! shortTitle: 경로 보기 title: 경로 뷰어 + toggleRouteOnMap: 지도에서 경로 토글 + stopsInDirectionOfTravel: '이동편 이 방향의 정류장:' + openPatternViewer: 경로 세부 사항 보기 SaveTripButton: cantSaveText: 저장할 수 없음 cantSaveTooltip: 대중교통을 포함하고 렌트 또는 차량 호출을 포함하지 않는 트립 일정만 모니터링할 수 있습니다. @@ -427,6 +453,8 @@ components: 저장된 트립의 최대 개수인 5개에 도달했습니다. 저장된 트립에서 사용하지 않는 트립을 제거한 후, 다시 시도하세요. tripNameAlreadyUsed: 저장된 다른 트립이 이 이름을 사용하고 있습니다. 다른 이름을 선택하세요. tripNameRequired: 트립의 이름을 입력하세요. + itineraryLoaded: 일정표 로드됨 + itineraryLoading: 일정표 로드 중 SessionTimeout: body: 세션이 1분 이내에 만료됩니다. 검색을 유지하려면 '세션 계속'을 누르세요. header: 세션이 곧 타임아웃됩니다! @@ -459,6 +487,9 @@ components: viewNextArrivals: 다음 도착편 보기 viewSchedule: 스케쥴 보기 zoomToStop: 정류장 확대 + nextArrivals: 다음 도착 + schedule: 일정 + forStop: 행 {stopName} SubNav: languageSelector: 언어 선택 languages: 언어 @@ -508,7 +539,7 @@ components: realtimeAlertFlagged: 내 트립 일정에 실시간 경고가 있습니다 timeBefore: '{time} 전' TripStatus: - alerts: "{alerts, plural, one {# 경고!} other {# 경고!}}" + alerts: "{alerts} 경고!" deleteTrip: 트립 삭제 planNewTrip: 새 트립 계획 TripStatusRenderers: @@ -586,8 +617,17 @@ components: header: 트립 뷰어 routeHeader: "노선: {routeShortName} {routeLongName}" viewStop: 보기 + startOfTrip: 여기에서 이동편 시작 + listOfRouteStops: 이 경로의 정류장 목록 + tripDescription: '{boardAtStop} 에서 탑승하고 {disembarkAtStop}에서 하차' + endOfTrip: 여기에서 이동편 종료 UserAccountScreen: confirmDelete: 귀하의 사용자 계정을 삭제하시겠습니까? 한 번 그렇게 하신 경우, 복구할 수 없습니다. + updating: 업데이트 중 + errorUpdatingProfile: 프로필 업데이트 중 오류. + fields: + storeTripHistory: 이동편 이력 저장 + fieldUpdated: 이 설정이 업데이트되었습니다. UserSettings: confirmDeletion: 최근 검색이나 장소가 저장되어 있습니다. 최근 장소 또는 검색을 비활성화하면 이러한 항목이 제거됩니다. 계속하시겠습니까? favoriteStops: 좋아하는 정류장 @@ -618,6 +658,41 @@ components: switcher: 변경 WelcomeScreen: prompt: 어디로 가고 싶으신가요? + OTP2ErrorRenderer: + SYSTEM_ERROR: + header: 트립 플래너 실패 + body: 검색 중 알 수 없는 오류가 발생했습니다. + LOCATION_NOT_FOUND: + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}} 어떤 거리와도 가깝지 않습니다.' + header: 위치 액세스 불가 + NO_STOPS_IN_RANGE: + header: 범위 내 정류장 없음 + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}} 어떤 정거장과도 가깝지 않습니다.' + NO_TRANSIT_CONNECTION: + body: 선택하신 차량 유형을 사용해, 선택하신 서비스 요일에 출발지와 목적지 사이에 검색된 대중교통 연결편이 없습니다. + header: 대중교통 연결편 없음 + inputFields: + FROM: 기원 + TO: 목적지 + WALKING_BETTER_THAN_TRANSIT: + body: 이동에 대중교통을 피하는 것이 대중교통을 이용하는 것보다 더 빠를 것입니다. + header: 이 이동편에서는 대중교통이 가장 빠르지 않습니다. + OUTSIDE_SERVICE_PERIOD: + header: 서비스 기간 외 + body: 지정된 날짜가 현재 트립 플래너에 로드된 데이터 범위를 벗어납니다. + OUTSIDE_BOUNDS: + header: 범위 밖 위치 + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}} 트립 플래너 범위가 아닙니다.' + NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: + body: 대중교통 연결편이 검색되었으나 탐색 창을 벗어났습니다. 선택한 차량 유형을 사용해 탐색 창을 재설정해 보십시오. + header: 탐색 창 내 대중교통 연결편 없음 + SequentialPaneDisplay: + stepNumber: '{step} / {total}단계' + MapillaryFrame: + title: 거리 보기 config: accessModes: bicycle: 대중교통 + 개인 자전거 From a7af090cf17901e53782e3b2fb950096696051d2 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 19:12:15 +0000 Subject: [PATCH 05/12] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (523 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/zh_Hans/ --- i18n/zh.yml | 88 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 8 deletions(-) diff --git a/i18n/zh.yml b/i18n/zh.yml index d487fa672..2fa7a284b 100644 --- a/i18n/zh.yml +++ b/i18n/zh.yml @@ -32,6 +32,8 @@ actions: location: geolocationNotSupportedError: 您的浏览器不支持地理定位 unknownPositionError: 获取位置的未知错误 + userDeniedPermission: 用户权限被拒绝 + deniedAccessAlert: "访问您的位置被阻止。\n若要使用当前位置,请从浏览器启用位置权限,然后重新加载页面。 \n" map: currentLocation: (当前位置) user: @@ -46,6 +48,9 @@ actions: smsInvalidCode: 您输入的代码无效. 请再试一次. smsResendThrottled: 不到一分钟前一条验证短信已经发送到指定的电话号码上. 请稍后再试. smsVerificationFailed: 您的手机无法被验证. 也许你输入的代码已经过期. 请申请一个新的代码并重新尝试. + mustBeLoggedInToSavePlace: 请登录以保存位置。 + mustAcceptTermsToSavePlace: 请接受使用条款(在“我的帐户”下)以保存位置。 + placeRemembered: 针对此地点的设置已保存。 common: coordinates: "{lat}, {lon}" dateExpressions: @@ -91,12 +96,14 @@ common: save: 保存 startOver: 重新开始 "yes": 是 + submitting: 正在提交… itineraryDescriptions: calories: "{calories, number} 大卡" noItineraryToDisplay: 没有显示行程. relativeCo2: | {co2} {isMore, select, true {更多} other {更少} } CO₂ 比单独驾车 transfers: "{transfers, plural, =0 {} other {# 换乘}}" + fareUnknown: 无票价信息 modes: bicycle_rent: 共享单车 bike: 自行车 @@ -143,8 +150,9 @@ common: nMinutes: "{minutes} 分钟" durationAgo: "{duration} 前" tripDurationFormat: >- - {hours, plural, =0 {} other {# 小时 }}{minutes} 分钟} { seconds, plural, =0 {} - other {# 秒}} + {hours, plural, =0 {} other {#小时}}{minutes} 分钟 { seconds, plural, =0 {} other + {#秒}} + linkOpensNewWindow: (打开新窗口) components: A11yPrefs: accessibilityRoutingByDefault: 默认情况下优先选择无障碍旅行 @@ -157,6 +165,8 @@ components: AdvancedOptions: bannedRoutes: 选择禁行路线… preferredRoutes: 选择首选路线… + bikeTolerance: 骑行容忍度 + walkTolerance: 步行容忍度 AfterSignInScreen: mainTitle: 重新定向… message: 如果几秒钟后页面没有加载, 请 点击这里. @@ -169,13 +179,11 @@ components: bikesAvailable: | {count, plural, =0 {自行车不可用} - one {# 辆自行车可用} other {# 辆自行车可用} } bikesNearby: | {count, plural, =0 {附近没有 {company} 自行车} - one {附近有 # 辆 {company} 自行车} other {附近有 # 辆 {company} 自行车} } nearbyAmenities: 附近的设施 @@ -185,13 +193,11 @@ components: scootersNearby: | {count, plural, =0 {附近没有 {company} 电动滑板车} - one {附近有 # {company} 电动滑板车} other {附近有 # {company} 电动滑板车} } spacesAvailable: | {count, plural, =0 {没有可用的车位} - one {# 个可车位} other {# 个可车位} } AppMenu: @@ -210,15 +216,17 @@ components: shortTitle: 计划行程 BatchSearchScreen: header: 计划您的行程 + modeSelectorLabel: 选择出行模式 BatchSettings: destination: 目的地 origin: 出发地 planTripTooltip: 计划行程 validationMessage: "请定义以下字段来计划旅行: {issues}" + invalidModeSelection: 无法使用所选模式计划行程。尝试在模式选择中包括公交。 BeforeSignInScreen: mainTitle: 签到 message: | - 为了访问这个页面 你将需要登录. 我们会将您重新定向到登录页面,请稍等. + 为了访问这个页面 你将需要登录。我们会将您重新定向到登录页面,请稍等。 CallTakerPanel: advancedOptions: 进阶选项 groupSize: "团体规模:" @@ -238,6 +246,7 @@ components: DefaultItinerary: clickDetails: 点击查看详情 multiModeSummary: "{accessMode} + {transitMode}" + nonTransit: 备选方案 DeleteUser: deleteMyAccount: 删除我的账户 ErrorMessage: @@ -270,6 +279,7 @@ components: minMaxFare: "{minTotalFare} - {maxTotalFare}" LiveStopTimes: autoRefresh: 自动刷新传入的到达? + refresh: 刷新到达时间 LocationSearch: enterLocation: 输入位置 setDestination: 设置目的地 @@ -290,6 +300,8 @@ components: multipleOptions: 多种选择 orAlternatives: 或同一方向的其他路线 timeWalking: "{time} 步行" + singleModeItineraryDescription: '{time} {mode} 行程' + originallyScheduledTime: (最初{originalTime}) MobileOptions: header: 设置搜索选项 NarrativeItinerariesHeader: @@ -308,6 +320,9 @@ components: selectDuration: 旅行时长 selectWalkTime: 步行时间 viewAll: 查看所有选项 + sortResults: 排序结果 + howToFindResults: 要查看结果,请参阅下面的“找到的行程”标题。 + resultsSortedBy: 当前按{sortSelected}排序的行程结果。要更改结果的排序方式,请使用下面的“排序结果”按钮。 NavLoginButton: help: 帮助 myAccount: 我的账户 @@ -324,6 +339,8 @@ components: header: 未找到内容 NotificationPrefsPane: notificationChannelPrompt: "如何接收已保存行程的通知:" + devicesRegistered: '{count, plural, one {# device} other {# devices}}已注册' + noDeviceForPush: 使用移动应用程序注册您的设备以访问推送通知。 PhoneNumberEditor: changeNumber: 更改电话号码 invalidCode: 请输入6位数的验证码. @@ -339,6 +356,7 @@ components: 请检查您手机上的短信应用查看是否有验证码的短信并输入以下代码 (代码在10分钟后失效). verified: 已验证 verify: 核实 + phoneNumberSubmitted: 电话号码{phoneNumber}已成功提交。 Place: deleteThisPlace: 删除这个地点 enterAlert: | @@ -350,6 +368,7 @@ components: locationPlaceholder: 搜索 {placeName} 位置 nameExample: 我的咖啡店 namePrompt: "地名:" + locationTypePrompt: 位置类型: PlanFirstLastButtons: first: 首先 last: 最后一次 @@ -389,6 +408,7 @@ components: operatedBy: 由 {agencyName} 运营 selectADirection: 选择一个方向… stopsTo: 邁向 + headsignTo: '{headsign} ({lastStop})' RouteViewer: agencyFilter: 运输机构筛选 allAgencies: 所有运输机构 @@ -400,6 +420,9 @@ components: noFilteredRoutesFound: 没有符合你筛选的路线! shortTitle: 查看路线 title: 路线查看器 + toggleRouteOnMap: 在地图上切换路线 + stopsInDirectionOfTravel: 行程此方向上的公车站: + openPatternViewer: 查看路线详细信息 SaveTripButton: cantSaveText: 无法保存 cantSaveTooltip: 只有包括交通的行程而没有租车或叫车的行程可以被监控. @@ -425,6 +448,8 @@ components: 你已经达到了五次保存行程的上限. 请从你保存行程中删除未使用的行程然后再试一次. tripNameAlreadyUsed: 另一个保存行程已经使用了这个名字. 请选择一个不同的名字. tripNameRequired: 请输入一个行程名称. + itineraryLoaded: 行程已加载 + itineraryLoading: 加载行程 SessionTimeout: body: 您的使用时间将在一分钟内到期.按“继续使用”以继续您的搜索. header: 使用时间即将结束! @@ -455,11 +480,14 @@ components: viewNextArrivals: 查看下一个公共交通到达 viewSchedule: 查看时间表 zoomToStop: 缩放到车站 + nextArrivals: 下一个到达点 + schedule: 时刻表 + forStop: 为 {stopName} SubNav: languageSelector: 选择语言 languages: 语言 myAccount: 我的帐户 - selectALanguage: 选择语言 + selectALanguage: 选择一种语言 settings: 设置 trips: 行程 userMenu: 个人资料选项 @@ -581,8 +609,17 @@ components: header: 行程查看器 routeHeader: 路线:{routeShortName} {routeLongName} viewStop: 查阅 + startOfTrip: 行程从这里开始 + listOfRouteStops: 这条路线上的公车站列表 + tripDescription: 在{boardAtStop}上车,在{disembarkAtStop}下车 + endOfTrip: 行程到此结束 UserAccountScreen: confirmDelete: 您确定要删除你的用户账户吗?一旦您这样做, 它就无法恢复. + updating: 正在更新 + errorUpdatingProfile: 更新配置文件出错。 + fields: + storeTripHistory: 存储行程历史记录 + fieldUpdated: 此设置已更新。 UserSettings: confirmDeletion: 您有最近的搜索或地点存储.若停止存储最近的地点或搜索的功能,则这些项目将被删除.要继续吗? favoriteStops: 最喜爱的车站 @@ -612,6 +649,41 @@ components: switcher: 切换按钮 WelcomeScreen: prompt: 你想去哪里? + OTP2ErrorRenderer: + SYSTEM_ERROR: + header: Trip Planner故障 + body: 搜索过程中发生未知错误。 + LOCATION_NOT_FOUND: + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}}不靠近任何街道。' + header: 位置不可访问 + NO_STOPS_IN_RANGE: + header: 范围内无公车站 + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}}不靠近任何公车站。' + NO_TRANSIT_CONNECTION: + body: 在所选服务日,使用您选择的车辆类型,在您的起点和终点之间未找到公交连接。 + header: 无公交连接 + inputFields: + FROM: 起源 + TO: 目的地 + WALKING_BETTER_THAN_TRANSIT: + body: 在行程中避免乘坐公交会比乘坐公交更快。 + header: 公交并不是最快的出行方式 + OUTSIDE_SERVICE_PERIOD: + header: 非服务时段 + body: 指定的日期不在当前加载到Trip Planner中的数据范围内。 + OUTSIDE_BOUNDS: + header: 位置超出边界 + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}}不在Trip Planner的范围内。' + NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: + body: 找到了一个公交连接,但它在搜索窗口之外,请尝试使用您选择的车辆类型调整搜索窗口。 + header: 搜索窗口中没有公交连接 + SequentialPaneDisplay: + stepNumber: 步骤{step}/{total} + MapillaryFrame: + title: 街道图像 config: accessModes: bicycle: 公共交通 + 我的自行车 From a46776166baeeb41754762e6dbabe9bf65d5be67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20Kemal=20S=C3=BCrmeneli?= Date: Thu, 16 Nov 2023 17:21:21 +0000 Subject: [PATCH 06/12] Translated using Weblate (Turkish) Currently translated at 20.4% (107 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/tr/ --- i18n/tr.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/i18n/tr.yml b/i18n/tr.yml index d3363dd05..c3cd32070 100644 --- a/i18n/tr.yml +++ b/i18n/tr.yml @@ -10,6 +10,7 @@ actions: setPaymentError: 'Ödeme bilgileri ayarlanırken hata oluştu:' setRequestStatusError: 'İstek durumu ayarlanırken hata oluştu:' editSubmitterNotesError: 'Gönderenin notları düzenlenirken hata oluştu:' + addNoteError: 'Yolculuk alanına not eklenirken hata oluştu:' user: emailVerificationResent: E-posta doğrulama mesajı yeniden gönderildi. genericError: 'Bir hata ile karşılaşıldı: {err}' @@ -36,6 +37,9 @@ actions: callTaker: fetchCallsError: 'Çağrılar alınırken hata oluştu: {err}' queryFetchError: 'Sorgular alınırken hata oluştu: {err}' + checkSessionError: 'Oturum kimlik doğrulama oluşturulurken hata oluştu: {err}' + couldNotFindCallError: Çağrı bulunamadı. Sorguları kaydetme isteği iptal ediliyor. + callQuerySaveError: 'Çağrı sorguları kaydedilirken hata oluştu: {err}' map: currentLocation: (Mevcut Konum) common: From bec91b1b5f1e030546517fef55ff35118c04d323 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 16:02:17 +0000 Subject: [PATCH 07/12] Translated using Weblate (Russian) Currently translated at 98.4% (515 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/ru/ --- i18n/ru.yml | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/i18n/ru.yml b/i18n/ru.yml index 49b919e2e..8725b5ef8 100644 --- a/i18n/ru.yml +++ b/i18n/ru.yml @@ -12,6 +12,13 @@ components: }" itinerariesFound: "{itineraryNum, plural,\n one {найден # маршрут}\n other {найдено несколько маршрутов (#)}\n }" + sortResults: Результаты сортировки + changeSortDir: Изменить направление сортировки + howToFindResults: Чтобы просмотреть результаты, см. заголовок «Найденные маршруты» + ниже. + resultsSortedBy: Результаты маршрута на данный момент отсортированы по {sortSelected}. + Чтобы изменить способ сортировки результатов, используйте кнопку «Сортировать + результаты» ниже. TripStatus: planNewTrip: Запланировать поездку deleteTrip: Удалить поездку @@ -30,6 +37,7 @@ components: streets: Улицы satellite: Спутник stops: Остановки общественного транспорта + shared-vehicles: Общие транспортные средства FavoritePlaceScreen: placeNotFound: Место не найдено addNewPlace: Добавить новое место @@ -64,6 +72,7 @@ components: mailables: Почтовые отправления fieldTrip: Поездка closeMenu: Закрыть меню + skipNavigation: Пропустить навигацию TripStatusRenderers: inactive: description: Возобновите отслеживание поездки, чтобы просматривать изменение @@ -116,6 +125,10 @@ components: accessible: Доступно routeHeader: 'Маршрут: {routeShortName} {routeLongName}' bicyclesAllowed: Разрешено + startOfTrip: Маршрут начинается здесь + listOfRouteStops: Список остановок на этом маршруте + tripDescription: Сесть в {boardAtStop} и выйти на {disembarkAtStop} + endOfTrip: Маршрут заканчивается здесь ExistingAccountDisplay: a11y: Доступность mainTitle: Мои настройки @@ -151,23 +164,31 @@ components: departAt: Отправление {departTime, time, short} StopTimeCell: imminentArrival: Отправляется + realtime: На основе данных в реальном времени + scheduled: По данным расписания MetroUI: multipleOptions: Несколько вариантов timeWalking: '{time} пешком' itineraryDescription: '{time}, маршрут с {routes}' leaveAt: Отправление orAlternatives: или другие маршруты в том же направлении + singleModeItineraryDescription: '{time} {mode} маршрут' + arriveAt: Вы прибываете + originallyScheduledTime: (изначально {originalTime}) SavedTripList: noSavedTrips: У вас нет сохраненных поездок pause: Приостановить resume: Возобновить noSavedTripsInstructions: Сперва выполните поиск поездок на карте. myTrips: Мои поездки + fromTo: Из {from} в {to} BatchSettings: destination: место назначения validationMessage: 'Заполните следующие поля, чтобы запланировать поездку: {issues}' planTripTooltip: Запланировать поездку origin: место отправления + invalidModeSelection: Невозможно спланировать поездку с использованием выбранных + режимов. Попробуйте включить транзит в выбор режима. StopViewer: viewNextArrivals: Посмотреть следующие прибытия loadingText: Загрузка остановки… @@ -181,6 +202,11 @@ components: в этой зоне по запросу. Для обслуживания в этой зоне вам, возможно, придется позвонить заранее. zoomToStop: Приблизить остановку + findSchedule: Найти расписание по дате + operatorLogoAriaLabel: '{operatorName} остановка:' + nextArrivals: Посмотреть следующие прибытия + schedule: Расписание + forStop: для {stopName} AddPlaceButton: addPlace: Добавить место tooManyPlaces: Достигнуто ограничение по количеству промежуточных мест @@ -219,6 +245,8 @@ components: verificationInstructions: "Откройте приложение для обмена SMS на телефоне и найдите текстовое сообщение с кодом подтверждения. Затем введите код ниже (срок действия кода: 10 минут).\n" + phoneNumberSubmitted: Номер телефона{phoneNumber} был успешно отправлен. + phoneNumberVerified: Номер телефона{phoneNumber} был успешно проверен. Place: viewStop: Просмотреть остановку deleteThisPlace: Удалить это место @@ -254,6 +282,10 @@ components: header: Средство просмотра маршрутов title: Средство просмотра маршрутов findARoute: Найти маршрут + toggleRouteOnMap: Переключить маршрут на карте + stopsInDirectionOfTravel: 'Остановки в этом направлении движения:' + details: ' ' + openPatternViewer: Посмотреть детали маршрута RelatedStopsPanel: relatedStops: Связанные остановки viewDetails: Просмотреть подробную информацию @@ -268,21 +300,27 @@ components: altRouteRecommended: Рекомендуется использовать пересадку или альтернативный маршрут howToReceiveAlerts: "Чтобы получать для сохраненных поездок, включите уведомления в настройках учетной записи и сохраните поездку еще раз.\n" + monitorThisTrip: 'Мониторинг данной поездки до ее начала:' + timeBefore: '{time} до' SavedTripScreen: tripNameRequired: Укажите имя поездки. tripNameAlreadyUsed: У вас уже сохранена поездка с таким именем. Укажите другое имя. tooManyTrips: "Можно сохранить не более пяти поездок. Удалите неиспользуемые поездки из раздела сохраненных и попробуйте еще раз.\n" + itineraryLoaded: Маршрут загружен + itineraryLoading: Загрузка маршрута StackedPaneDisplay: savePreferences: Сохранить параметры LiveStopTimes: autoRefresh: Обновлять прибытия автоматически? + refresh: Обновить время прибытия RouteDetails: selectADirection: Выберите направление… moreDetails: Подробнее operatedBy: 'Оператор: {agencyName}' stopsTo: По направлению + headsignTo: '{headsign} ({lastStop})' SimpleRealtimeAnnotation: usingRealtimeInfo: Для этой поездки используется информация о задержках и дорожном движении в режиме реального времени. @@ -309,6 +347,7 @@ components: \n \n Тип поездки (например, прогулка + общественный транспорт, велосипед + общественный транспорт, авто + общественный транспорт): \n \n *** ТЕХНИЧЕСКИЕ СВЕДЕНИЯ ***\"\n" + header: Инструменты маршрута PlanFirstLastButtons: next: Следующий last: Последний @@ -353,6 +392,10 @@ components: settings: Настройки trips: Поездки myAccount: Моя учетная запись + languageSelector: Выбрать язык + userMenu: Опции профиля + languages: Языки + selectALanguage: Выбрать язык AccountSetupFinishPane: message: Вы готовы планировать поездки. RelatedPanel: @@ -381,6 +424,8 @@ components: genericLocationPlaceholder: Поиск местоположения namePrompt: 'Название места:' addressPrompt: 'Aдрес:' + nameExample: Мои любимые кофейные точки + locationTypePrompt: 'Тип местонахождения:' CallTakerPanel: groupSize: 'Размер группы:' advancedOptions: Расширенные опции @@ -416,11 +461,17 @@ components: UserAccountScreen: confirmDelete: Действительно удалить учетную запись? После удаления ее невозможно будет восстановить. + updating: Обновляется + errorUpdatingProfile: Ошибка редактирования профиля. + fields: + storeTripHistory: Сохранять историю поездок + fieldUpdated: Этот параметр был обновлен. PrintLayout: toggleMap: Переключить карту itinerary: Маршрут BatchSearchScreen: header: Запланируйте поездку + modeSelectorLabel: Выбрать способ передвижения DateTimeOptions: now: Сейчас departAt: Отправление в @@ -433,11 +484,16 @@ components: deleteMyAccount: Удалить мою учетную запись AdvancedOptions: preferredRoutes: Выбор предпочтительных маршрутов… + bikeTolerance: Выносливость для езды на велосипеде + walkTolerance: Выносливость для ходьбы пешком + bannedRoutes: Выбор заблокированных маршрутов… DefaultItinerary: clickDetails: Нажмите, чтобы просмотреть подробную информацию multiModeSummary: '{accessMode} + {transitMode}' + nonTransit: Альтернативные варианты TripSummary: arriveAt: 'Прибытие в ' + leaveAt: 'Оставить ' TransitVehicleOverlay: stopped_at: 'Двери открываются на остановке: «{stop}»' in_transit_to: 'Cледующая остановка: «{stop}»' @@ -446,6 +502,53 @@ components: incoming_at: 'Приближаемся к остановке: «{stop}»' ItinerarySummary: minMaxFare: '{minTotalFare} — {maxTotalFare}' + itineraryDetails: Сведения о маршруте + NotificationPrefsPane: + notificationChannelPrompt: 'Получайте уведомления о сохраненных поездках через:' + devicesRegistered: '{count, plural, one {# устройство} other {# устройства}} зарегистрированы' + noDeviceForPush: Зарегистрируйте свое устройство с помощью мобильного приложения, + чтобы получать всплывающие уведомления. + OTP2ErrorRenderer: + SYSTEM_ERROR: + header: Сбой планировщика поездок + body: Во время поиска произошла неизвестная ошибка. + LOCATION_NOT_FOUND: + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {местонахождение} + other {местонахождения}} вдалеке от всех улиц.' + header: Местонахождение недоступно. + NO_STOPS_IN_RANGE: + header: Нет остановок в радиусе действия + body: '{inputFields} {inputFieldsCount, plural, =0 {} one{местонахождение} other {местонахождения}} + вдалеке от всех остановок общественного транспорта.' + NO_TRANSIT_CONNECTION: + body: Между вашим пунктом отправления и пунктом назначения транзитное сообщение + в выбранный день с использованием выбранных вами типов транспортных средств + не обнаружено. + header: Нет транзитного сообщения + inputFields: + FROM: Mесто отправления + TO: Mесто назначения + WALKING_BETTER_THAN_TRANSIT: + body: При избежании транзитных маршрутов поездка будет быстрее, чем при пользовании + транзитом. + header: Транзит — не самый быстрый способ совершить эту поездку. + OUTSIDE_SERVICE_PERIOD: + header: Вне периода обслуживания + body: Указанная дата находится за пределами диапазона данных, загруженных в + настоящий момент в планировщик поездок. + OUTSIDE_BOUNDS: + header: Местонахождение вне пределов досягаемости + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {местонахождение} + other {местонахождения}} не в рамках плана поездки.' + NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: + body: Транзитное сообщение было найдено, но оно находилось за пределами окна + поиска. Попробуйте настроить окно поиска, используя выбранные вами типы транспортных + средств. + header: В окне поиска нет транзитного соединения + SequentialPaneDisplay: + stepNumber: Шаг {шаг} из {общее кол-во} + MapillaryFrame: + title: Изображения с улицы config: flex: both: Подробные сведения приведены в нижней части экрана маршрута @@ -496,6 +599,10 @@ actions: confirmDeletePlace: Удалить это место? smsResendThrottled: SMS-сообщение с подтверждением отправлено на указанный номер меньше минуты назад. Попробуйте снова через несколько минут. + mustBeLoggedInToSavePlace: Пожалуйста, войдите в систему, чтобы сохранять местоположения. + mustAcceptTermsToSavePlace: Примите «Условия использования» (в разделе «Моя учетная + запись»), чтобы сохранять местоположения. + placeRemembered: Настройки этого места сохранены. callTaker: checkSessionError: 'Ошибка установления сеанса авторизации: {err}' fetchCallsError: 'Ошибка получения вызовов: {err}' @@ -508,6 +615,10 @@ actions: location: unknownPositionError: Неизвестная ошибка при определении местоположения geolocationNotSupportedError: Ваш браузер не поддерживает геоданные + userDeniedPermission: Пользователь отказал в разрешении + deniedAccessAlert: "Доступ к вашему местоположению заблокирован.\nЧтобы использовать + ваше текущее местоположение, включите разрешение на определение местоположения + в браузере и перезагрузите страницу. \n" common: daysOfWeekPlural: thursday: Четверги @@ -535,9 +646,12 @@ common: bicycle_rent: Прокат велосипедов micromobility_rent: Электросамокат flex: Гибкие маршруты + subway: Метро + tram: Трамвай notifications: email: электронная почта sms: SMS + push: всплывающие уведомления daysOfWeekCompact: wednesday: Ср. thursday: Чт. @@ -561,11 +675,15 @@ common: error: Ошибка! next: Далее defaultValue: '{value} (по умолчанию)' + submitting: Отправка… itineraryDescriptions: transfers: '{transfers, plural, =0 {} one {# пересадка} other {несколько пересадок (#)}}' noItineraryToDisplay: Нет маршрута для отображения. calories: '{calories, number} кал' + fareUnknown: Информации о стоимости поездки нет. + relativeCo2: "{co2} {isMore, select, true {больше } other {меньше} } CO₂, чем + при вождении в одиночку\n" places: custom: пользовательское home: дом @@ -579,6 +697,8 @@ common: nHours: '{hours, plural, =1 {час назад} other {# ч назад}}' nMinutes: '{minutes, plural, =1 {одну минуту} other {# мин}}' aFewSeconds: несколько секунд + tripDurationFormat: '{hours, plural, =0 {} other {# hr }}{minutes} min { seconds, + plural, =0 {} other {# sec}}' daysOfWeek: sunday: Воскресенье wednesday: Среда @@ -600,6 +720,7 @@ common: click: нажмите на него tap: коснитесь его enterDestination: Введите место назначения или {mapAction} на карте… + linkOpensNewWindow: (Открывает новое окно) util: state: noTripFoundReason: В пределах указанного максимального расстояния или в указанное @@ -610,3 +731,5 @@ util: noTripFound: Не удалось найти поездку. noTripFoundForMode: Не удалось найти поездку для режима «{modes}». noTripFoundWithReason: '{noTripFound}: {reason}' +_id: ru +_name: Pусский From c232fec5919f206501ea130f4c37ca58d7c9cd28 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 15:53:39 +0000 Subject: [PATCH 08/12] Translated using Weblate (Tagalog) Currently translated at 98.4% (515 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/tl/ --- i18n/tl.yml | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/i18n/tl.yml b/i18n/tl.yml index b66e90edf..1a389e14c 100644 --- a/i18n/tl.yml +++ b/i18n/tl.yml @@ -11,6 +11,13 @@ components: numIssues: '{issueNum, plural, one {# issue} other {# issues} }' itinerariesFound: '{itineraryNum, plural, one {# itinerary found} other {# itineraries found} }' + sortResults: Ayusin ang mga resulta + changeSortDir: Baguhin ang pagkakaayos ng direksyon + howToFindResults: Para tingnan ang mga resulta, tingnan ang heading na Mga Nakitang + Itinerary sa ibaba. + resultsSortedBy: Kasalukuyang nakaayos ayon sa {sortSelected} ang mga resulta + ng biyahe. Para palitan ang paraan kung paano nakaayos ang mga resulta, gamitin + ang "button sa ibaba" na Ayusin ang Mga Resulta. TripStatus: planNewTrip: Magplano ng Bagong Biyahe deleteTrip: I-delete ang Biyahe @@ -28,6 +35,7 @@ components: streets: Mga Kalye satellite: Satellite stops: Mga Hintuan ng Pampublikong Transportasyon + shared-vehicles: Mga Nakabahaging Sasakyan FavoritePlaceScreen: placeNotFound: Hindi nakita ang lugar addNewPlace: Magdagdag ng bagong lugar @@ -60,6 +68,7 @@ components: mailables: Mga Mailable fieldTrip: Field Trip closeMenu: Isara ang Menu + skipNavigation: I-skip ang pag-navigate TripStatusRenderers: inactive: description: Ipagpatuloy ang pagsubaybay sa biyahe para makita ang updated na @@ -115,6 +124,10 @@ components: accessible: Accessible routeHeader: 'Ruta: {routeShortName} {routeLongName}' bicyclesAllowed: Pinapayagan + startOfTrip: Magsisimula rito ang biyahe + listOfRouteStops: Listahan ng mga hintuan sa rutang ito + tripDescription: Sumakay sa {boardAtStop} at bumaba sa {disembarkAtStop} + endOfTrip: Magtatapos dito ang biyahe ExistingAccountDisplay: a11y: Accessibility mainTitle: Aking mga setting @@ -150,24 +163,32 @@ components: departAt: Aalis nang {departTime, time, short} StopTimeCell: imminentArrival: Takdang Petsa + realtime: Batay sa realtime na data + scheduled: Batay sa data ng iskedyul MetroUI: multipleOptions: Maraming Opsyon timeWalking: '{time} (na) paglalakad' itineraryDescription: '{time} (na) itinerary gamit ang {routes}' leaveAt: Aalis ka orAlternatives: o ang iba pang ruta sa parehong direksyon + singleModeItineraryDescription: '{time} {mode} itinerary' + arriveAt: Dumating ka na + originallyScheduledTime: (orihinal na {originalTime}) SavedTripList: noSavedTrips: Wala kang naka-save na biyahe pause: I-pause resume: Ipagpatuloy noSavedTripsInstructions: Maghanap muna ng biyahe sa mapa. myTrips: Aking mga biyahe + fromTo: Mula sa {from} papuntang {to} BatchSettings: destination: patutunguhan validationMessage: 'Ilarawan ang mga sumusunod na field para makapagplano ng biyahe: {issues}' planTripTooltip: Planuhin ang biyahe origin: pinagmulan + invalidModeSelection: Hindi makapagplano ng biyahe gamit ang mga piniling mode. + Subukang isama ang pampublikong transportasyon sa pagpili mo ng mode. StopViewer: viewNextArrivals: Tingnan ang mga susunod na pagdating loadingText: Nilo-load ang Hintuan... @@ -181,6 +202,11 @@ components: ang mga sasakyan sa flexible na zone na ito kapag hiniling. Posibleng kailanganin mong tumawag muna para sa serbisyo sa lugar na ito. zoomToStop: I-zoom para ihinto + findSchedule: Maghanap ng iskedyul ayon sa petsa + operatorLogoAriaLabel: '{operatorName} hintuan:' + nextArrivals: Mga Susunod na Pagdating + schedule: Iskedyul + forStop: para sa {stopName} AddPlaceButton: addPlace: Magdagdag ng lugar tooManyPlaces: Naabot ang maximum na bilang ng mga intermediate na lugar @@ -220,6 +246,9 @@ components: verificationInstructions: "Tingnan ang app sa SMS messaging sa iyong mobile phone para sa isang text message na may code sa pag-verify, at ilagay ang code sa ibaba (mag-e-expire ang code pagkalipas ng 10 minuto).\n" + phoneNumberSubmitted: Matagumpay na naisumite ang numero ng teleponong {phoneNumber}. + phoneNumberVerified: Matagumpay na na-verify ang numero ng teleponong {phoneNumber} + . Place: viewStop: Tingnan ang Hintuan deleteThisPlace: I-delete ang lugar na ito @@ -256,6 +285,10 @@ components: header: Viewer ng Ruta title: Viewer ng Ruta findARoute: Maghanap ng Ruta + toggleRouteOnMap: I-toggle ang ruta sa mapa + stopsInDirectionOfTravel: 'Mga hintuan sa direksyong ito ng paglalakbay:' + details: ' ' + openPatternViewer: Tingnan ang mga detalye ng ruta RelatedStopsPanel: relatedStops: Mga Kaugnay na Hintuan viewDetails: Tingnan ang mga detalye @@ -271,6 +304,8 @@ components: howToReceiveAlerts: "Para makatanggap ng mga alerto para sa iyong mga naka-save na biyahe, i-enable ang mga notification sa mga setting ng iyong account, at subukang mag-save ulit ng biyahe.\n" + monitorThisTrip: 'Subaybayan ang biyaheng ito bago ito magsimula:' + timeBefore: '{time} dati' SavedTripScreen: tripNameRequired: Maglagay ng pangalan ng biyahe. tripNameAlreadyUsed: May gumagamit nang naka-save na biyahe sa pangalang ito. @@ -278,15 +313,19 @@ components: tooManyTrips: "Naabot mo na ang maximum na limang naka-save na biyahe. Alisin ang mga hindi pa nagagamit na biyahe sa iyong mga naka-save na biyahe, at subukan ulit.\n" + itineraryLoaded: Na-load na ang itinerary + itineraryLoading: Nilo-load ang itinerary StackedPaneDisplay: savePreferences: I-save ang mga kagustuhan LiveStopTimes: autoRefresh: Awtomatikong i-refresh ang mga pagdating? + refresh: I-refresh ang mga oras ng pagdating RouteDetails: selectADirection: Pumili ng direksyon... moreDetails: Higit Pang Detalye operatedBy: Pinapatakbo ng {agencyName} stopsTo: Papuntang + headsignTo: '{headsign} ({lastStop})' SimpleRealtimeAnnotation: usingRealtimeInfo: Gumagamit ang biyaheng ito nang real-time na impormasyon sa trapiko at pagkaantala @@ -313,6 +352,7 @@ components: gusto mong gawin (hal. maglakad + gumamit ng pampublikong transportasyon, magbisikleta + gumamit ng pampublikong transportasyon, sasakyan + gumamit ng pampublikong transportasyon): \n \n *** MGA TEKNIKAL NA DETALYE ***\"\n" + header: Mga Tool sa Biyahe PlanFirstLastButtons: next: Susunod last: Huli @@ -356,6 +396,10 @@ components: settings: Mga Setting trips: Mga Biyahe myAccount: Aking account + languageSelector: Pumili ng wika + userMenu: Mga opsyon sa profile + languages: Mga Wika + selectALanguage: Pumili ng isang wika AccountSetupFinishPane: message: Handa ka nang simulan na planuhin ang mga biyahe mo. RelatedPanel: @@ -383,6 +427,8 @@ components: genericLocationPlaceholder: Maghanap ng lokasyon namePrompt: 'Pangalan ng lugar:' addressPrompt: 'Address:' + nameExample: Aking coffee shop + locationTypePrompt: 'Uri ng lokasyon:' CallTakerPanel: groupSize: 'Laki ng grupo:' advancedOptions: Mga advanced na opsyon @@ -418,11 +464,17 @@ components: UserAccountScreen: confirmDelete: Sigurado ka bang gusto mong i-delete ang iyong user account? Kapag ginawa mo ito, hindi na ito mare-recover. + updating: Nag-a-update + errorUpdatingProfile: Error sa pag-update ng profile + fields: + storeTripHistory: History ng biyahe sa tindahan + fieldUpdated: Na-update na ang setting na ito. PrintLayout: toggleMap: I-toggle ang Mapa itinerary: Itinerary BatchSearchScreen: header: Planuhin ang Iyong Biyahe + modeSelectorLabel: Pumili ng paraan ng pagbiyahe DateTimeOptions: now: Ngayon departAt: Umalis nang @@ -435,11 +487,16 @@ components: deleteMyAccount: I-delete ang aking account AdvancedOptions: preferredRoutes: Piliin ang mga mas gustong ruta... + bikeTolerance: Tolerance sa Pagbibisikleta + walkTolerance: Tolerance sa Paglalakad + bannedRoutes: Pumili ng mga naka-ban na ruta… DefaultItinerary: clickDetails: I-click para tingnan ang mga detalye multiModeSummary: '{accessMode} + {transitMode}' + nonTransit: Mga alternatibong opsyon TripSummary: arriveAt: 'Darating nang ' + leaveAt: 'Umalis sa ' TransitVehicleOverlay: stopped_at: 'Magbubukas ang mga pinto sa: {stop}' in_transit_to: 'Susunod na hintuan: {stop}' @@ -448,6 +505,56 @@ components: incoming_at: 'Paparating na sa: {stop}' ItinerarySummary: minMaxFare: '{minTotalFare} - {maxTotalFare}' + itineraryDetails: Mga detalye ng itinerary + NotificationPrefsPane: + notificationChannelPrompt: 'Makatanggap ng mga notification tungkol sa iyong mga + naka-save na biyahe sa pamamagitan ng:' + devicesRegistered: '{count, plural, one {# device} other {# mga device}} rehistrado' + noDeviceForPush: Irehistro ang iyong device gamit ang mobile app para i-access + ang mga push notification. + OTP2ErrorRenderer: + SYSTEM_ERROR: + header: Failure sa Planner ng Biyahe + body: May hindi kilalang error na nangyari sa panahon ng paghahanap. + LOCATION_NOT_FOUND: + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {ang lokasyon ay} + other {ang mga lokasyon ay}} hindi malapit sa anumang kalsada.' + header: Hindi naa-access ang lokasyon + NO_STOPS_IN_RANGE: + header: Walang nasasaklaw na hintuan + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {ang lokasyon ay} + other {ang mga lokasyon ay}} hindi malapit sa anumang hintuan ng pampublikong + sasakyan.' + NO_TRANSIT_CONNECTION: + body: Walang nakitang koneksyon sa pampublikong transportasyon sa pagitan ng + iyong pinagmulan at destinasyon sa piniling araw ng serbisyo, gamit ang mga + uri ng sasakyang pinili mo. + header: Walang koneksyon sa pampublikong transportasyon + inputFields: + FROM: Pinagmulan + TO: Patutunguhan + WALKING_BETTER_THAN_TRANSIT: + body: Ang pag-iwas sa pampublikong sasakyan sa iyong biyahe ay magiging mas + mabilis kaysa sa pagsakay sa pampublikong sasakyan. + header: Hindi pampublikong transportasyon ang pinakamabilis na paraan para bumiyahe + nang ganito + OUTSIDE_SERVICE_PERIOD: + header: Wala sa panahon ng serbisyo + body: Wala sa saklaw ng data na kasalukuyang naka-load sa planner ng biyahe + ang petsang tinukoy. + OUTSIDE_BOUNDS: + header: Wala sa mga hangganan ang lokasyon + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {ang lokasyon ay} + other {ang mga lokasyon ay}} wala sa mga hangganan ng planner ng byahe.' + NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: + body: May nakitang koneksyon sa pampublikong sasakyan, pero nasa labas ito ng + search window, subukang iayos ang iyong search window, gamit ang mga uri ng + sasakyang pinili mo. + header: Walang koneksyon sa pampublikong transportasyon sa window ng paghahanap + SequentialPaneDisplay: + stepNumber: Hakbang {hakbang} ng {kabuuan} + MapillaryFrame: + title: Larawan ng kalsada config: flex: both: Tingnan ang ibaba ng itinerary para sa mga detalye @@ -499,6 +606,10 @@ actions: smsResendThrottled: Nagpadala ng SMS para sa pag-verify sa nakasaad na numero ng telepono hindi hihigit sa isang minuto ang nakalipas. Subukan ulit pagkalipas ng ilang sandali. + mustBeLoggedInToSavePlace: Mangyaring mag-log in para mag-save ng mga lokasyon. + mustAcceptTermsToSavePlace: Pakitanggap ang Mga Tuntunin ng Paggamit (sa ilalim + ng Aking Account) para mag-save ng mga lokasyon. + placeRemembered: Na-save na ang mga setting para sa lugar na ito. callTaker: checkSessionError: 'Nagka-error sa pag-establish sa auth session: {err}' fetchCallsError: 'Nagka-error sa pag-fetch ng mga tawag: {err}' @@ -512,6 +623,10 @@ actions: location: unknownPositionError: Nagka-error sa pagkuha sa posisyon geolocationNotSupportedError: Hindi sinusuportahan ng iyong browser ang geolocation + userDeniedPermission: Tinanggihan ng user ang pahintulot + deniedAccessAlert: "Naka-block ang access sa lokasyon mo.\nPara gamitin ang kasalukuyang + lokasyon mo, i-enable ang mga pahintulot sa lokasyon mula sa browser mo, at + i-reload ang page. \n" common: daysOfWeekPlural: thursday: Tuwing Huwebes @@ -539,9 +654,12 @@ common: bicycle_rent: Bikeshare micromobility_rent: E-scooter flex: Mga Flexible na Ruta + subway: Subway + tram: Streetcar notifications: email: email sms: SMS + push: mga push notification daysOfWeekCompact: wednesday: Miy. thursday: Huw. @@ -565,10 +683,14 @@ common: error: nagka-error! next: Susunod defaultValue: '{value} (default)' + submitting: Isinusumite… itineraryDescriptions: transfers: '{transfers, plural, =0 {} one {# transfer} other {# transfers}}' noItineraryToDisplay: Walang ipapakitang itinerary. calories: '{calories, number} Cal' + fareUnknown: Walang impormasyon sa pamasahe + relativeCo2: "{co2} {isMore, select, true {mas maraming} other {mas kaunting} + } CO₂ kaysa magmaneho nang mag-isa\n" places: custom: custom home: bahay @@ -582,6 +704,8 @@ common: nHours: '{hours, plural, =1 {an hour} other {# hours}}' nMinutes: '{minutes} (na) minuto' aFewSeconds: a few seconds + tripDurationFormat: '{hours, plural, =0 {} other {# hr }}{minutes} min { seconds, + plural, =0 {} other {# sec}}' daysOfWeek: sunday: Linggo wednesday: Miyerkules @@ -603,6 +727,7 @@ common: click: click tap: tap enterDestination: Ilagay ang destinasyon o {mapAction} sa mapa… + linkOpensNewWindow: (Magbubukas sa bagong window) util: state: noTripFoundReason: Posibleng walang serbisyo sa pampublikong transportasyon sa @@ -613,3 +738,5 @@ util: noTripFound: Walang nakitang biyahe. noTripFoundForMode: Walang nakitang biyahe para sa {modes}. noTripFoundWithReason: '{noTripFound} {reason}' +_id: tl +_name: Tagalog From 852b1deb9f4dc37df8a4fa21cfbc069ac61820d2 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 20:27:28 +0000 Subject: [PATCH 09/12] Translated using Weblate (Vietnamese) Currently translated at 97.7% (511 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/vi/ --- i18n/vi.yml | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/i18n/vi.yml b/i18n/vi.yml index 0d3e31565..3edd1850a 100644 --- a/i18n/vi.yml +++ b/i18n/vi.yml @@ -40,6 +40,10 @@ actions: geolocationNotSupportedError: Định vị địa lý không được hỗ trợ bởi trình duyệt của bạn unknownPositionError: Lỗi không xác định khi tìm vị trí + userDeniedPermission: Người dùng từ chối cấp quyền + deniedAccessAlert: "Quyền truy cập vào địa điểm của quý vị bị chặn.\nĐể sử dụng + địa điểm hiện tại của mình, quý vị hãy cho phép sử dụng vị trí trong trình duyệt + và tải lại trang này. \n" map: currentLocation: (Vị trí hiện tại) user: @@ -59,6 +63,10 @@ actions: smsVerificationFailed: >- Điện thoại của bạn không thể được xác minh. Có lẽ mã bạn đã nhập đã hết hạn. Vui lòng yêu cầu một mã mới và thử lại. + mustBeLoggedInToSavePlace: Vui lòng đăng nhập để lưu lại địa điểm. + mustAcceptTermsToSavePlace: Vui lòng chấp nhận Điều Khoản Sử Dụng (trong phần + Tài Khoản Của Tôi) để lưu lại địa điểm. + placeRemembered: Cài đặt cho vị trí này đã được lưu lại. common: coordinates: "{lat}, {lon}" dateExpressions: @@ -104,12 +112,14 @@ common: save: Tiết kiệm startOver: Bắt đầu lại "yes": Đúng + submitting: Đang gửi… itineraryDescriptions: calories: "{calories, number} calo" noItineraryToDisplay: Không có hành trình để hiển thị. relativeCo2: | {co2} CO₂ {isMore, select, true {nhiều} other {ít} } hơn so với xe hơi transfers: "{transfers, plural, =0 {} other {# chuyển}}" + fareUnknown: Không có thông tin giá vé modes: bicycle_rent: Chia sẻ xe đạp bike: Xe đạp @@ -158,6 +168,7 @@ common: tripDurationFormat: >- {hours, plural, =0 {} other {# giờ }}{minutes} phút { seconds, plural, =0 {} other {# giây}} + linkOpensNewWindow: (Mở khoảng thời gian mới) components: A11yPrefs: accessibilityRoutingByDefault: Thích những chuyến đi có thể truy cập theo mặc @@ -172,6 +183,8 @@ components: AdvancedOptions: bannedRoutes: Chọn các tuyến đường bị cấm… preferredRoutes: Chọn các tuyến đường ưa thích… + bikeTolerance: Sức chịu đựng đi xe đạp + walkTolerance: Sức chịu đựng đi bộ AfterSignInScreen: mainTitle: Chuyển hướng... message: >- @@ -223,6 +236,7 @@ components: shortTitle: Lên kế hoạch cho chuyến đi BatchSearchScreen: header: Kế hoạch chuyến đi + modeSelectorLabel: Chọn phương thức di chuyển BatchSettings: destination: điểm đến origin: điểm xuất phát @@ -230,6 +244,9 @@ components: validationMessage: >- Vui lòng xác định các khu vực sau để lên kế hoạch cho một chuyến đi: {issues} + invalidModeSelection: Không thể lên kế hoạch cho chuyến đi bằng các phương thức + đã lựa chọn. Hãy thử đưa phương tiện công cộng vào phần lựa chọn phương thức + của quý vị. BeforeSignInScreen: mainTitle: Đăng nhập bạn vào message: > @@ -254,6 +271,7 @@ components: DefaultItinerary: clickDetails: Bấm để xem chi tiết multiModeSummary: "{accessMode} + {transitMode}" + nonTransit: Các tùy chọn thay thế DeleteUser: deleteMyAccount: Xóa tài khoản của tôi ErrorMessage: @@ -289,6 +307,7 @@ components: minMaxFare: "{minTotalFare} - {maxTotalFare}" LiveStopTimes: autoRefresh: Tự động làm mới các lượt đến? + refresh: Làm mới thời gian đến LocationSearch: enterLocation: Nhập vị trí setDestination: Chọn điểm đến @@ -299,7 +318,7 @@ components: micromobility-rental: "{companies} Xe tay ga điện" park-and-ride: Địa điểm đậu xe và đi xe công cộng satellite: Vệ tinh - shared-vehicles: Phương tiện chia sẻ + shared-vehicles: Phương Tiện Đi Chung stops: Điểm dừng của phương tiện công cộng streets: Đường phố MetroUI: @@ -309,6 +328,8 @@ components: multipleOptions: Nhiều lựa chọn orAlternatives: hoặc các tuyến đường khác cùng hướng timeWalking: "{time} đi bộ" + singleModeItineraryDescription: Hành trình {mode} kéo dài {time} + originallyScheduledTime: (ban đầu là {originalTime}) MobileOptions: header: Cài đặt tùy chọn tìm kiếm NarrativeItinerariesHeader: @@ -323,6 +344,10 @@ components: selectDuration: Thời gian selectWalkTime: Thời gian đi bộ viewAll: Xem tất cả các tùy chọn + sortResults: Kết quả sắp xếp + howToFindResults: Để xem kết quả, xem phần các hành trình đã tìm thấy ở phía dưới. + resultsSortedBy: Kết quả chuyến đi hiện được sắp xếp theo {sortSelected}. Để thay + đổi cách sắp xếp kết quả, hãy sử dụng nút "Sắp Xếp Kết Quả" bên dưới. NavLoginButton: help: Giúp đỡ myAccount: Tài khoản của tôi @@ -339,6 +364,10 @@ components: header: Không tìm thấy nội dung NotificationPrefsPane: notificationChannelPrompt: "Nhận thông báo về các chuyến đi đã lưu bằng:" + devicesRegistered: '{count, plural, one {# device} other {# devices}} đã đăng + ký' + noDeviceForPush: Đăng ký thiết bị của quý vị bằng ứng dụng di động để nhận thông + báo đẩy. PhoneNumberEditor: changeNumber: Thay đổi số điện thoại invalidCode: Vui lòng nhập 6 chữ số cho mã xác thực. @@ -356,6 +385,7 @@ components: phút). verified: Đã xác minh verify: Kiểm chứng + phoneNumberSubmitted: Gửi thành công số điện thoại {phoneNumber}. Place: deleteThisPlace: Xóa nơi này enterAlert: > @@ -369,6 +399,7 @@ components: locationPlaceholder: Tìm kiếm vị trí {placeName} nameExample: Quán cà phê của tôi namePrompt: "Tên địa điểm:" + locationTypePrompt: 'Loại địa điểm:' PlanFirstLastButtons: first: Thứ nhất last: Cuối @@ -410,6 +441,7 @@ components: operatedBy: Được điều hành bởi {agencyName} selectADirection: Chọn một hướng… stopsTo: Hướng + headsignTo: '{headsign} ({lastStop})' RouteViewer: agencyFilter: Sàng lọc đại lý giao thông công cộng allAgencies: Tất cả các đại lý phương tiện công cộng @@ -421,6 +453,9 @@ components: noFilteredRoutesFound: Không có tuyến đường phù hợp với sàng lọc của bạn! shortTitle: Xem các tuyến đường title: Xem tuyến đường + toggleRouteOnMap: Chuyển đổi tuyến đường trên bản đồ + stopsInDirectionOfTravel: 'Các trạm dừng trong hướng di chuyển này:' + openPatternViewer: Xem chi tiết tuyến đường SaveTripButton: cantSaveText: Không thể tiết kiệm cantSaveTooltip: >- @@ -451,6 +486,8 @@ components: Một chuyến đi được lưu khác đã sử dụng tên này. Vui lòng chọn một tên khác. tripNameRequired: Vui lòng nhập tên chuyến đi. + itineraryLoaded: Đã tải hành trình + itineraryLoading: Đang tải hành trình SessionTimeout: body: >- Phiên của bạn sẽ hết hạn trong vòng một phút. Nhấn 'Tiếp tục Phiên' để @@ -488,6 +525,9 @@ components: viewNextArrivals: Xem những xe đến tiếp theo viewSchedule: Xem lịch trình zoomToStop: Phóng to để dừng lại + nextArrivals: Lần Đến Nơi Tiếp Theo + schedule: Lịch trình + forStop: dành cho {stopName} SubNav: languageSelector: Chọn ngôn ngữ languages: Ngôn ngữ @@ -639,10 +679,19 @@ components: header: Xem chuyến đi routeHeader: "Tuyến: {routeShortName} {routeLongName}" viewStop: Lượt xem + startOfTrip: Chuyến đi bắt đầu tại đây + listOfRouteStops: Danh sách các trạm dừng trên tuyến đường này + tripDescription: Lên xe tại {boardAtStop} và xuống xe tại {disembarkAtStop} + endOfTrip: Chuyến đi kết thúc tại đây UserAccountScreen: confirmDelete: >- Bạn có chắc bạn muốn xóa tài khoản người dùng của mình không? Một khi bạn làm như vậy, nó không thể được phục hồi. + updating: Đang cập nhật + errorUpdatingProfile: Lỗi cập nhật hồ sơ. + fields: + storeTripHistory: Lưu trữ lịch sử chuyến đi + fieldUpdated: Cài đặt này đã được cập nhật. UserSettings: confirmDeletion: >- Bạn có các tìm kiếm và/hoặc địa điểm gần đây được lưu trữ. Việc vô hiệu @@ -681,6 +730,49 @@ components: switcher: Nút bật tắt WelcomeScreen: prompt: Bạn muốn đi đâu? + OTP2ErrorRenderer: + SYSTEM_ERROR: + header: Lỗi Trình Lên Kế Hoạch Chuyến Đi + body: Đã xảy ra lỗi chưa xác định trong khi tìm kiếm. + LOCATION_NOT_FOUND: + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}} không nằm gần đường phố nào.' + header: Không thể tiếp cận địa điểm + NO_STOPS_IN_RANGE: + header: Không có trạm dừng trong phạm vi + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}} không nằm gần trạm dừng phương tiện công cộng nào.' + NO_TRANSIT_CONNECTION: + body: Không tìm thấy kết nối bằng phương tiện công cộng nào giữa điểm đầu và + điểm đến trong những ngày cung cấp dịch vụ được chọn với các loại phương tiện + quý vị đã chọn. + header: Không có kết nối bằng phương tiện công cộng nào + inputFields: + FROM: Nguồn gốc + TO: Điểm đến + WALKING_BETTER_THAN_TRANSIT: + body: Quý vị sẽ hoàn thành chuyến đi nhanh hơn nếu tránh sử dụng phương tiện + công cộng. + header: Phương tiện công cộng không phải là cách nhanh nhất để thực hiện chuyến + đi này + OUTSIDE_SERVICE_PERIOD: + header: Ngoài giai đoạn cung cấp dịch vụ + body: Ngày được chỉ định nằm ngoài phạm vi dữ liệu hiện có trong trình lên kế + hoạch chuyến đi. + OUTSIDE_BOUNDS: + header: Địa điểm nằm ngoài ranh giới + body: '{inputFields} {inputFieldsCount, plural, =0 {} one {location is} other + {locations are}} không nằm trong ranh giới của trình lên kế hoạch chuyến đi.' + NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: + body: Tìm thấy kết nối bằng phương tiện công cộng nhưng phương thức này nằm + ngoài khoảng thời gian tìm kiếm, hãy thử điều chỉnh khoảng thời gian tìm kiếm + với các loại phương tiện quý vị đã chọn. + header: Không có kết nối bằng phương tiện công cộng trong khoảng thời gian tìm + kiếm + SequentialPaneDisplay: + stepNumber: Bước {step} trên {total} + MapillaryFrame: + title: Hình ảnh đường phố config: accessModes: bicycle: Giao thông công cộng + Xe đạp cá nhân From fd8babcd7ea07d86ef1b8489fd29a96c02080810 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 21:29:23 +0000 Subject: [PATCH 10/12] Translated using Weblate (Spanish) Currently translated at 100.0% (523 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/es/ --- i18n/es.yml | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/i18n/es.yml b/i18n/es.yml index fa8328959..2e10d03eb 100644 --- a/i18n/es.yml +++ b/i18n/es.yml @@ -68,8 +68,8 @@ actions: smsVerificationFailed: >- Su teléfono no ha podido ser verificado. Quizás el código que has introducido ha caducado. Solicita un nuevo código e inténtalo de nuevo. - mustAcceptTermsToSavePlace: Por favor, acepte las Condiciones de uso (en Mi cuenta) - para guardar las ubicaciones. + mustAcceptTermsToSavePlace: Acepte los Términos de uso (en Mi Cuenta) para guardar + las ubicaciones. common: coordinates: "{lat}; {lon}" dateExpressions: @@ -171,8 +171,8 @@ common: nMinutes: "{minutes, plural, =1 {un minuto} other {# minutos}}" durationAgo: hace {duration} tripDurationFormat: >- - {hours, plural, =0 {} other {# h }}{minutes} min { seconds, plural, =0 {} - other {# s}} + {hours, plural, =0 {} other {# h }}{minutes} min { seconds, plural, =0 {} other + {# s}} components: A11yPrefs: accessibilityRoutingByDefault: Prefiera los viajes accesibles por defecto @@ -246,8 +246,8 @@ components: BatchSettings: destination: destino invalidModeSelection: >- - No se puede planificar un viaje utilizando los modos seleccionados. Prueba - a incluir el transporte publico en la selección de modos. + No se puede planificar un viaje utilizando los modos seleccionados. Prueba a + incluir el transporte publico en la selección de modos. origin: origen planTripTooltip: Planificar viaje validationMessage: "Por favor, defina los siguientes campos para planificar un @@ -343,8 +343,8 @@ components: NarrativeItinerariesHeader: changeSortDir: Cambiar la dirección de clasificación howToFindResults: >- - Para ver los resultados, consulta el encabezado de los itinerarios - encontrados a continuación. + Para ver los resultados, consulta el encabezado de los itinerarios encontrados + a continuación. itinerariesFound: >- {itineraryNum, plural, one {# itinerario encontrado} other {# itinerarios encontrados}} @@ -379,39 +379,38 @@ components: NotificationPrefsPane: noDeviceForPush: Regístrese con la aplicación móvil para acceder a esta configuración. notificationChannelPrompt: "Recibir notificaciones para sus viajes guardados por:" - devicesRegistered: '{count, plural, one {# dispositivo} other {# dispositivos}} - registrado(s)' + devicesRegistered: '{count, plural, one {# device} other {# devices}} registrado' OTP2ErrorRenderer: LOCATION_NOT_FOUND: body: >- - {inputFields} {inputFieldsCount, plural, =0 {} one {la ubicación es} other - {las ubicaciones son}} no está cerca de ninguna calle. + {inputFieldsCount, plural, =0 {} one {localización es} other {localizaciones + son}} no están cerca de ninguna calle. header: No se puede acceder a la ubicación NO_STOPS_IN_RANGE: body: >- - {inputFields} {inputFieldsCount, plural, =0 {} one {ubicación es} other {ubicaciones - son}} no están cerca de ninguna parada del transporte. + {inputFieldsCount, plural, =0 {} one {ubicación es} other {ubicaciones son}} + no están cerca de ninguna parada del transporte. header: Sin paradas cerca NO_TRANSIT_CONNECTION: body: >- - No se encontró ninguna conexión entre tu origen y destino en el día - seleccionado, utilizando los tipos de vehículos que seleccionaste. + No se encontró ninguna conexión entre tu origen y destino en el día seleccionado, + utilizando los tipos de vehículos que seleccionaste. header: Sin conexiones NO_TRANSIT_CONNECTION_IN_SEARCH_WINDOW: body: >- - Se encontró una conexión, pero estaba fuera de las opciones de la - búsqueda, intenta ajustar las opciones de la búsqueda, usando los tipos - de vehículos que seleccionaste. + Se encontró una conexión, pero estaba fuera de las opciones de la búsqueda, + intenta ajustar las opciones de la búsqueda, usando los tipos de vehículos + que seleccionaste. header: Sin conexiones por el criterio de la búsqueda OUTSIDE_BOUNDS: body: >- - {inputFields} {inputFieldsCount, plural, =0 {} one {ubicación es} other {ubicaciones + {inputFieldsCount, plural, =0 {} one {localización es} other {localizaciones son}} no están en los límites del planificador de viajes. header: Ubicación fuera de los límites OUTSIDE_SERVICE_PERIOD: body: >- - La fecha específicada está fuera del rango de los datos disponibles para - la búsqueda de los viajes. + La fecha específicada está fuera del rango de los datos disponibles para la + búsqueda de los viajes. header: Fuera de plazo SYSTEM_ERROR: body: Se ha producido un error desconocido en la búsqueda. @@ -756,8 +755,8 @@ components: updating: Actualizando errorUpdatingProfile: Error al actualizar el perfil. fields: - storeTripHistory: Guardar el historial de los viajes - fieldUpdated: Este ajuste se ha actualizado. + storeTripHistory: Almacenar historial de viajes + fieldUpdated: Este ajuste se actualizó. UserSettings: confirmDeletion: >- Tiene almacenadas búsquedas o lugares recientes. Si desactiva el From e988ee290e470255df88560a989fa861d8fc26d0 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 20:32:42 +0000 Subject: [PATCH 11/12] Translated using Weblate (Vietnamese) Currently translated at 100.0% (523 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/vi/ --- i18n/vi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/vi.yml b/i18n/vi.yml index 3edd1850a..eb207e6d6 100644 --- a/i18n/vi.yml +++ b/i18n/vi.yml @@ -250,8 +250,8 @@ components: BeforeSignInScreen: mainTitle: Đăng nhập bạn vào message: > - Để truy cập trang này, bạn sẽ cần phải đăng nhập. Vui lòng đợi trong khi - chúng tôi chuyển hướng bạn đến trang đăng nhập… + Để truy cập trang này, bạn sẽ cần phải đăng nhập. Vui lòng đợi trong khi chúng + tôi chuyển hướng bạn đến trang đăng nhập… CallTakerPanel: advancedOptions: Tùy chọn nâng cao groupSize: "Quy mô nhóm:" From 56750c5b4b38ec1bbaf3ce9f32b8fd1e752222f4 Mon Sep 17 00:00:00 2001 From: Binh Dam Date: Thu, 16 Nov 2023 22:01:03 +0000 Subject: [PATCH 12/12] Translated using Weblate (Spanish) Currently translated at 100.0% (523 of 523 strings) Translation: OTP-react-redux/OTP-RR Main UI Translate-URL: https://hosted.weblate.org/projects/otp-react-redux/otp-rr-main-ui/es/ --- i18n/es.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es.yml b/i18n/es.yml index 2e10d03eb..761842a8b 100644 --- a/i18n/es.yml +++ b/i18n/es.yml @@ -383,13 +383,13 @@ components: OTP2ErrorRenderer: LOCATION_NOT_FOUND: body: >- - {inputFieldsCount, plural, =0 {} one {localización es} other {localizaciones - son}} no están cerca de ninguna calle. + {inputFields}: {inputFieldsCount, plural, =0 {} one {localización es} other + {localizaciones son}} no están cerca de ninguna calle. header: No se puede acceder a la ubicación NO_STOPS_IN_RANGE: body: >- - {inputFieldsCount, plural, =0 {} one {ubicación es} other {ubicaciones son}} - no están cerca de ninguna parada del transporte. + {inputFields}: {inputFieldsCount, plural, =0 {} one {ubicación es} other {ubicaciones + son}} no están cerca de ninguna parada del transporte. header: Sin paradas cerca NO_TRANSIT_CONNECTION: body: >- @@ -404,8 +404,8 @@ components: header: Sin conexiones por el criterio de la búsqueda OUTSIDE_BOUNDS: body: >- - {inputFieldsCount, plural, =0 {} one {localización es} other {localizaciones - son}} no están en los límites del planificador de viajes. + {inputFields}: {inputFieldsCount, plural, =0 {} one {localización es} other + {localizaciones son}} no están en los límites del planificador de viajes. header: Ubicación fuera de los límites OUTSIDE_SERVICE_PERIOD: body: >-