feat(assistant): expenses, shares, wind, journey tracks and Dawarich checks as MCP tools

- list_budget_items lists a trip's expenses with their ids, payers and
  splits, page by page so no page is cut down on its way to a model;
  get_budget_per_person answers who paid and owes what. Both in a new
  budget-items.mcp.ts, checked like their REST twins.
- get_wind_forecast reads the hourly wind, gusts and direction of a day.
- get_journey_tracks lists a journey's GPX tracks; the line for drawing
  rides under a key the provider never receives.
- The Dawarich wishlist scan and the countries the recordings suggest
  become tools, with their confirming writes, in DawarichAtlasMcp in the
  Atlas group; the shared time window check refuses alike on REST and
  MCP, and the model never sees when the user was last seen in a city.
- The journal's map, tracks and recorded days load with the journey
  group instead of riding in the core of every step.
- The prompt points at list_budget_items for expense ids (the trip
  summary never carried them) and names the shares and the wind tools;
  each new read has its own live step.
This commit is contained in:
Maurice
2026-10-22 00:03:19 +00:00
parent aea37d9914
commit fa8a43b16e
63 changed files with 2418 additions and 51 deletions
+14
View File
@@ -9,6 +9,8 @@ import {
budgetUpdateMembersRequestSchema,
budgetToggleMemberPaidRequestSchema,
budgetReorderItemsRequestSchema,
budgetItemsPageSchema,
BUDGET_ITEMS_PAGE_DEFAULT,
COST_CATEGORIES,
typeToCostCategory,
} from './budget.schema';
@@ -157,3 +159,15 @@ describe('budgetUnconvertedSchema', () => {
);
});
});
describe('budgetItemsPageSchema', () => {
it('takes no paging at all, or an offset and a limit of 1 to 100 whole expenses', () => {
expect(budgetItemsPageSchema.safeParse({}).success).toBe(true);
expect(budgetItemsPageSchema.safeParse({ offset: 0, limit: 1 }).success).toBe(true);
expect(budgetItemsPageSchema.safeParse({ offset: 150, limit: 100 }).success).toBe(true);
for (const page of [{ offset: -1 }, { offset: 1.5 }, { limit: 0 }, { limit: 101 }, { limit: '10' }]) {
expect(budgetItemsPageSchema.safeParse(page).success, JSON.stringify(page)).toBe(false);
}
expect(BUDGET_ITEMS_PAGE_DEFAULT).toBe(50);
});
});
+27
View File
@@ -421,3 +421,30 @@ export const budgetReorderCategoriesRequestSchema = z.object({
orderedCategories: z.array(z.string()),
});
export type BudgetReorderCategoriesRequest = z.infer<typeof budgetReorderCategoriesRequestSchema>;
/** How many expenses one page of the MCP expense list holds when the caller does not say. */
export const BUDGET_ITEMS_PAGE_DEFAULT = 50;
const BUDGET_ITEMS_PAGE_MAX = 100;
/**
* One page of the expense list an MCP client reads (list_budget_items): the
* expenses in their list order from `offset`, at most `limit` of them. A
* budget of a few hundred rows is too long for one answer to a model, so it
* pages; the totals next to the page always cover the whole trip.
*/
export const budgetItemsPageSchema = z.object({
offset: z
.number()
.int()
.min(0)
.optional()
.describe('How many expenses to skip: the next_offset of the page before (default 0)'),
limit: z
.number()
.int()
.min(1)
.max(BUDGET_ITEMS_PAGE_MAX)
.optional()
.describe(`How many expenses at most (default ${BUDGET_ITEMS_PAGE_DEFAULT}, at most ${BUDGET_ITEMS_PAGE_MAX})`),
});
export type BudgetItemsPage = z.infer<typeof budgetItemsPageSchema>;
+16 -1
View File
@@ -30,6 +30,8 @@ import {
dawarichSuggestionStateSchemaBody,
dawarichSuggestionTargetSchema,
dawarichSyncStateSchema,
dawarichTimeWindowSchema,
DAWARICH_WINDOW_MAX_DAYS,
dawarichTrackDaySchema,
dawarichTrackSchema,
dawarichTrackSegmentSchema,
@@ -39,7 +41,7 @@ import {
import { describe, expect, it } from 'vitest';
/**
* DAWARICH-SCHEMA-001..043: the Dawarich contracts.
* DAWARICH-SCHEMA-001..044: the Dawarich contracts.
*
* This is the layer both sides of the integration agree on, and the feature is
* built out of things that are deliberately lenient in one place and
@@ -734,3 +736,16 @@ describe('the tuning numbers', () => {
expect(DAWARICH_SYNC_LOOKAHEAD_DAYS).toBe(1);
});
});
describe('dawarichTimeWindowSchema', () => {
it('DAWARICH-SCHEMA-044 needs both ends, each a non-empty string, and leaves the order and the 400-day span to the server', () => {
// The order and the span are the server's to check (parseTimeWindow), because
// the MCP input is this shape's fields and a refinement on the object would
// never run there. What the schema itself owes is that neither end is missing.
expect(dawarichTimeWindowSchema.safeParse({ from: '2025-01-01', to: '2025-12-31' }).success).toBe(true);
expect(dawarichTimeWindowSchema.safeParse({ from: '2025-01-01' }).success).toBe(false);
expect(dawarichTimeWindowSchema.safeParse({ from: '', to: '2025-12-31' }).success).toBe(false);
expect(dawarichTimeWindowSchema.safeParse({ from: 20250101, to: '2025-12-31' }).success).toBe(false);
expect(DAWARICH_WINDOW_MAX_DAYS).toBe(400);
});
});
+24
View File
@@ -331,6 +331,30 @@ export const dawarichTrackSchema = z.object({
});
export type DawarichTrack = z.infer<typeof dawarichTrackSchema>;
/** The longest window one read of the recordings may span. */
export const DAWARICH_WINDOW_MAX_DAYS = 400;
/**
* An explicit window of the recordings, as GET /atlas/suggestions and GET
* /track take it in their query and the MCP tools take it as input. Both ends
* are required and `to` lies after `from`, within DAWARICH_WINDOW_MAX_DAYS:
* a half-open range would read everything since the epoch, the request that
* makes an instance time out. The server checks the order and the span.
*/
export const dawarichTimeWindowSchema = z.object({
from: z
.string()
.min(1)
.describe('Start of the window, ISO 8601 (2025-06-01 or 2025-06-01T00:00:00Z); a bare date is its midnight UTC'),
to: z
.string()
.min(1)
.describe(
`End of the window, ISO 8601, after from and at most ${DAWARICH_WINDOW_MAX_DAYS} days later; a bare date is its midnight UTC, so give the day after the last one to include it`,
),
});
export type DawarichTimeWindow = z.infer<typeof dawarichTimeWindowSchema>;
// ── Atlas ────────────────────────────────────────────────────────────────────
/**
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'قراءة الحجز',
'assistant.step.planningHike': 'تخطيط رحلة المشي',
'assistant.step.planningHikeTo': 'تخطيط رحلة المشي إلى {place}',
'assistant.step.expenses': 'قراءة النفقات',
'assistant.step.shares': 'حساب الحصص',
'assistant.step.wind': 'التحقق من الرياح',
'assistant.step.tracks': 'قراءة مسارات GPX',
'assistant.step.bucketScan': 'مقارنة قائمة الأمنيات بتسجيلاتك',
'assistant.step.atlasCountries': 'البحث عن الدول في تسجيلاتك',
'assistant.step.working': 'جارٍ العمل على ذلك',
'assistant.step.collapsed': '{count} خطوة',
'assistant.step.collapsed.zero': 'لا خطوات',
@@ -516,6 +522,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'إضافة وسيلة نقل',
'assistant.tool.toggle_vacay_entry': 'تحديد يوم إجازة',
'assistant.tool.mark_country_visited': 'تحديد البلد كمُزار',
'assistant.tool.confirm_bucket_list_visits': 'الشطب في قائمة الأمنيات',
'assistant.tool.clear_bucket_list_visit': 'إلغاء الشطب في قائمة الأمنيات',
'assistant.tool.accept_atlas_countries': 'إضافة الدول إلى الأطلس',
'assistant.tool.send_collab_message': 'إرسال إلى محادثة الرحلة',
'assistant.admin.chatgptShared':
'أنت تشارك اشتراكك الشخصي في ChatGPT مع الجميع على هذا الخادم: تُحتسب محادثاتهم من خطتك. تحقّق من أن خطتك وشروط OpenAI تسمح بذلك.',
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Bron oxunur',
'assistant.step.planningHike': 'Yürüş planlaşdırılır',
'assistant.step.planningHikeTo': '{place} istiqamətində yürüş planlaşdırılır',
'assistant.step.expenses': 'Xərclər oxunur',
'assistant.step.shares': 'Paylar hesablanır',
'assistant.step.wind': 'Külək yoxlanılır',
'assistant.step.tracks': 'GPX izləri oxunur',
'assistant.step.bucketScan': 'Arzular siyahısı qeydlərinizlə tutuşdurulur',
'assistant.step.atlasCountries': 'Qeydlərinizdə ölkələr axtarılır',
'assistant.step.working': 'Üzərində işləyirəm',
'assistant.step.collapsed': '{count} addım',
'assistant.step.collapsed.one': '{count} addım',
@@ -436,6 +442,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Nəqliyyat əlavə et',
'assistant.tool.toggle_vacay_entry': 'Məzuniyyət günü təyin et',
'assistant.tool.mark_country_visited': 'Ölkəni ziyarət edilmiş kimi işarələ',
'assistant.tool.confirm_bucket_list_visits': 'Arzular siyahısında tamamlandı kimi işarələ',
'assistant.tool.clear_bucket_list_visit': 'Arzular siyahısında işarəni geri götür',
'assistant.tool.accept_atlas_countries': 'Ölkələri Atlasa əlavə et',
'assistant.tool.send_collab_message': 'Səyahət söhbətinə göndər',
'assistant.admin.chatgptShared':
'Öz ChatGPT abunəliyini bu serverdəki hər kəslə paylaşırsan: onların söhbətləri sənin planından çıxılır. Planının və OpenAI şərtlərinin buna icazə verdiyini yoxla.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Lendo a reserva',
'assistant.step.planningHike': 'Planejando a trilha',
'assistant.step.planningHikeTo': 'Planejando a trilha até {place}',
'assistant.step.expenses': 'Lendo as despesas',
'assistant.step.shares': 'Calculando a parte de cada um',
'assistant.step.wind': 'Verificando o vento',
'assistant.step.tracks': 'Lendo as trilhas GPX',
'assistant.step.bucketScan': 'Conferindo a lista de desejos com suas gravações',
'assistant.step.atlasCountries': 'Procurando países nas suas gravações',
'assistant.step.working': 'Trabalhando nisso',
'assistant.step.collapsed': '{count} etapas',
'assistant.step.collapsed.one': '{count} etapa',
@@ -437,6 +443,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Adicionar transporte',
'assistant.tool.toggle_vacay_entry': 'Marcar um dia de férias',
'assistant.tool.mark_country_visited': 'Marcar o país como visitado',
'assistant.tool.confirm_bucket_list_visits': 'Riscar na lista de desejos',
'assistant.tool.clear_bucket_list_visit': 'Desfazer o risco na lista de desejos',
'assistant.tool.accept_atlas_countries': 'Adicionar os países ao Atlas',
'assistant.tool.send_collab_message': 'Enviar para o chat da viagem',
'assistant.admin.chatgptShared':
'Você compartilha seu próprio plano do ChatGPT com todos neste servidor: os chats deles contam no seu plano. Confira se o seu plano e os termos da OpenAI permitem isso.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Llegint la reserva',
'assistant.step.planningHike': 'Planificant l’excursió',
'assistant.step.planningHikeTo': 'Planificant l’excursió fins a {place}',
'assistant.step.expenses': 'Llegint les despeses',
'assistant.step.shares': 'Calculant la part de cadascú',
'assistant.step.wind': 'Consultant el vent',
'assistant.step.tracks': 'Llegint les traces GPX',
'assistant.step.bucketScan': 'Comprovant la llista de desitjos amb els teus enregistraments',
'assistant.step.atlasCountries': 'Cercant països als teus enregistraments',
'assistant.step.working': 'Hi estic treballant',
'assistant.step.collapsed': '{count} passos',
'assistant.step.collapsed.one': '{count} pas',
@@ -439,6 +445,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Afegeix transport',
'assistant.tool.toggle_vacay_entry': 'Marca un dia de vacances',
'assistant.tool.mark_country_visited': 'Marca el país com a visitat',
'assistant.tool.confirm_bucket_list_visits': 'Marca a la llista de desitjos',
'assistant.tool.clear_bucket_list_visit': 'Desmarca a la llista de desitjos',
'assistant.tool.accept_atlas_countries': 'Afegeix els països a l’Atlas',
'assistant.tool.send_collab_message': 'Envia al xat del viatge',
'assistant.admin.chatgptShared':
'Comparteixes el teu propi pla de ChatGPT amb tothom en aquest servidor: els seus xats compten contra el teu pla. Comprova que el teu pla i les condicions d’OpenAI ho permeten.',
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Čtu rezervaci',
'assistant.step.planningHike': 'Plánuji túru',
'assistant.step.planningHikeTo': 'Plánuji túru do místa {place}',
'assistant.step.expenses': 'Čtu výdaje',
'assistant.step.shares': 'Počítám podíly',
'assistant.step.wind': 'Zjišťuji vítr',
'assistant.step.tracks': 'Čtu GPX stopy',
'assistant.step.bucketScan': 'Porovnávám seznam přání s vašimi záznamy',
'assistant.step.atlasCountries': 'Hledám země ve vašich záznamech',
'assistant.step.working': 'Pracuji na tom',
'assistant.step.collapsed': '{count} kroků',
'assistant.step.collapsed.one': '{count} krok',
@@ -455,6 +461,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Přidat dopravu',
'assistant.tool.toggle_vacay_entry': 'Nastavit den dovolené',
'assistant.tool.mark_country_visited': 'Označit zemi jako navštívenou',
'assistant.tool.confirm_bucket_list_visits': 'Odškrtnout v seznamu přání',
'assistant.tool.clear_bucket_list_visit': 'Zrušit odškrtnutí v seznamu přání',
'assistant.tool.accept_atlas_countries': 'Přidat země do Atlasu',
'assistant.tool.send_collab_message': 'Poslat do chatu cesty',
'assistant.admin.chatgptShared':
'Sdílíš své vlastní předplatné ChatGPT se všemi na tomto serveru: jejich chaty se počítají do tvého tarifu. Ověř, že to tvůj tarif a podmínky OpenAI dovolují.',
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Liest die Buchung',
'assistant.step.planningHike': 'Plant die Wanderung',
'assistant.step.planningHikeTo': 'Plant die Wanderung bis {place}',
'assistant.step.expenses': 'Liest die Ausgaben',
'assistant.step.shares': 'Rechnet die Anteile aus',
'assistant.step.wind': 'Prüft den Wind',
'assistant.step.tracks': 'Liest die GPX-Tracks',
'assistant.step.bucketScan': 'Gleicht die Wunschliste mit deinen Aufzeichnungen ab',
'assistant.step.atlasCountries': 'Sucht Länder in deinen Aufzeichnungen',
'assistant.step.working': 'Arbeitet daran',
'assistant.step.collapsed': '{count} Schritte',
'assistant.step.collapsed.one': '{count} Schritt',
@@ -436,6 +442,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Verbindung hinzufügen',
'assistant.tool.toggle_vacay_entry': 'Urlaubstag setzen',
'assistant.tool.mark_country_visited': 'Land als besucht markieren',
'assistant.tool.confirm_bucket_list_visits': 'Auf der Wunschliste abhaken',
'assistant.tool.clear_bucket_list_visit': 'Haken auf der Wunschliste entfernen',
'assistant.tool.accept_atlas_countries': 'Länder in den Atlas übernehmen',
'assistant.tool.send_collab_message': 'In den Trip-Chat senden',
'assistant.admin.chatgptShared':
'Du teilst dein eigenes ChatGPT-Abo mit allen auf diesem Server: Ihre Chats zählen gegen dein Kontingent. Prüfe, ob dein Abo und die Bedingungen von OpenAI das erlauben.',
+9
View File
@@ -112,6 +112,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Reading the booking',
'assistant.step.planningHike': 'Planning the hike',
'assistant.step.planningHikeTo': 'Planning the hike to {place}',
'assistant.step.expenses': 'Reading the expenses',
'assistant.step.shares': 'Working out the shares',
'assistant.step.wind': 'Checking the wind',
'assistant.step.tracks': 'Reading the GPX tracks',
'assistant.step.bucketScan': 'Checking your wishlist against your recordings',
'assistant.step.atlasCountries': 'Looking for countries in your recordings',
'assistant.step.working': 'Working on it',
'assistant.step.collapsed': '{count} steps',
'assistant.step.collapsed.one': '{count} step',
@@ -431,6 +437,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Add transport',
'assistant.tool.toggle_vacay_entry': 'Set a vacation day',
'assistant.tool.mark_country_visited': 'Mark the country as visited',
'assistant.tool.confirm_bucket_list_visits': 'Tick off on the wishlist',
'assistant.tool.clear_bucket_list_visit': 'Untick on the wishlist',
'assistant.tool.accept_atlas_countries': 'Add the countries to the Atlas',
'assistant.tool.send_collab_message': 'Send to the trip chat',
'assistant.admin.chatgptShared':
'You share your own ChatGPT plan with everyone on this server: their chats count against your plan. Check that your plan and OpenAI’s terms allow this.',
+9
View File
@@ -114,6 +114,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Leyendo la reserva',
'assistant.step.planningHike': 'Planificando la excursión',
'assistant.step.planningHikeTo': 'Planificando la excursión hasta {place}',
'assistant.step.expenses': 'Leyendo los gastos',
'assistant.step.shares': 'Calculando la parte de cada uno',
'assistant.step.wind': 'Consultando el viento',
'assistant.step.tracks': 'Leyendo las rutas GPX',
'assistant.step.bucketScan': 'Contrastando la lista de deseos con tus grabaciones',
'assistant.step.atlasCountries': 'Buscando países en tus grabaciones',
'assistant.step.working': 'Trabajando en ello',
'assistant.step.collapsed': '{count} pasos',
'assistant.step.collapsed.one': '{count} paso',
@@ -434,6 +440,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Añadir transporte',
'assistant.tool.toggle_vacay_entry': 'Marcar un día de vacaciones',
'assistant.tool.mark_country_visited': 'Marcar el país como visitado',
'assistant.tool.confirm_bucket_list_visits': 'Tachar de la lista de deseos',
'assistant.tool.clear_bucket_list_visit': 'Quitar la marca en la lista de deseos',
'assistant.tool.accept_atlas_countries': 'Añadir los países al Atlas',
'assistant.tool.send_collab_message': 'Enviar al chat del viaje',
'assistant.admin.chatgptShared':
'Compartes tu propio plan de ChatGPT con todos en este servidor: sus chats cuentan contra tu plan. Comprueba que tu plan y las condiciones de OpenAI lo permiten.',
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Loen broneeringut',
'assistant.step.planningHike': 'Planeerin matka',
'assistant.step.planningHikeTo': 'Planeerin matka sihtkohta {place}',
'assistant.step.expenses': 'Loen kulusid',
'assistant.step.shares': 'Arvutan osasid',
'assistant.step.wind': 'Kontrollin tuult',
'assistant.step.tracks': 'Loen GPX-radu',
'assistant.step.bucketScan': 'Võrdlen soovinimekirja sinu salvestustega',
'assistant.step.atlasCountries': 'Otsin riike sinu salvestustest',
'assistant.step.working': 'Töötan selle kallal',
'assistant.step.collapsed': '{count} sammu',
'assistant.step.collapsed.one': '{count} samm',
@@ -435,6 +441,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Lisa transport',
'assistant.tool.toggle_vacay_entry': 'Määra puhkusepäev',
'assistant.tool.mark_country_visited': 'Märgi riik külastatuks',
'assistant.tool.confirm_bucket_list_visits': 'Märgi soovinimekirjas täidetuks',
'assistant.tool.clear_bucket_list_visit': 'Võta soovinimekirjas märge tagasi',
'assistant.tool.accept_atlas_countries': 'Lisa riigid Atlasesse',
'assistant.tool.send_collab_message': 'Saada reisivestlusesse',
'assistant.admin.chatgptShared':
'Jagad oma ChatGPT tellimust kõigiga selles serveris: nende vestlused arvestatakse sinu paketist. Kontrolli, kas sinu pakett ja OpenAI tingimused seda lubavad.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Lecture de la réservation',
'assistant.step.planningHike': 'Planification de la randonnée',
'assistant.step.planningHikeTo': 'Planification de la randonnée jusqu’à {place}',
'assistant.step.expenses': 'Lecture des dépenses',
'assistant.step.shares': 'Calcul des parts',
'assistant.step.wind': 'Consultation du vent',
'assistant.step.tracks': 'Lecture des traces GPX',
'assistant.step.bucketScan': 'Confrontation de la liste de souhaits à vos enregistrements',
'assistant.step.atlasCountries': 'Recherche des pays dans vos enregistrements',
'assistant.step.working': 'Travail en cours',
'assistant.step.collapsed': '{count} étapes',
'assistant.step.collapsed.one': '{count} étape',
@@ -441,6 +447,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Ajouter un transport',
'assistant.tool.toggle_vacay_entry': 'Poser un jour de congé',
'assistant.tool.mark_country_visited': 'Marquer le pays comme visité',
'assistant.tool.confirm_bucket_list_visits': 'Cocher dans la liste de souhaits',
'assistant.tool.clear_bucket_list_visit': 'Décocher dans la liste de souhaits',
'assistant.tool.accept_atlas_countries': 'Ajouter les pays à l’Atlas',
'assistant.tool.send_collab_message': 'Envoyer dans la discussion du voyage',
'assistant.admin.chatgptShared':
'Vous partagez votre propre abonnement ChatGPT avec tout le monde sur ce serveur : leurs discussions comptent sur votre forfait. Vérifiez que votre forfait et les conditions d’OpenAI le permettent.',
+9
View File
@@ -118,6 +118,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Διαβάζω την κράτηση',
'assistant.step.planningHike': 'Σχεδιάζω την πεζοπορία',
'assistant.step.planningHikeTo': 'Σχεδιάζω την πεζοπορία προς {place}',
'assistant.step.expenses': 'Διαβάζω τα έξοδα',
'assistant.step.shares': 'Υπολογίζω τα μερίδια',
'assistant.step.wind': 'Έλεγχος ανέμου',
'assistant.step.tracks': 'Διαβάζω τις διαδρομές GPX',
'assistant.step.bucketScan': 'Ελέγχω τη λίστα επιθυμιών με τις καταγραφές σας',
'assistant.step.atlasCountries': 'Αναζητώ χώρες στις καταγραφές σας',
'assistant.step.working': 'Δουλεύω πάνω σε αυτό',
'assistant.step.collapsed': '{count} βήματα',
'assistant.step.collapsed.one': '{count} βήμα',
@@ -440,6 +446,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Προσθήκη μεταφοράς',
'assistant.tool.toggle_vacay_entry': 'Ορισμός ημέρας άδειας',
'assistant.tool.mark_country_visited': 'Σήμανση χώρας ως επισκεφθείσας',
'assistant.tool.confirm_bucket_list_visits': 'Σήμανση ως εκπληρωμένων στη λίστα επιθυμιών',
'assistant.tool.clear_bucket_list_visit': 'Αναίρεση της σήμανσης στη λίστα επιθυμιών',
'assistant.tool.accept_atlas_countries': 'Προσθήκη των χωρών στον Άτλαντα',
'assistant.tool.send_collab_message': 'Αποστολή στη συνομιλία ταξιδιού',
'assistant.admin.chatgptShared':
'Μοιράζεσαι τη δική σου συνδρομή ChatGPT με όλους σε αυτόν τον διακομιστή: οι συνομιλίες τους χρεώνονται στο δικό σου πρόγραμμα. Έλεγξε ότι το πρόγραμμά σου και οι όροι της OpenAI το επιτρέπουν.',
+9
View File
@@ -117,6 +117,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'A foglalás olvasása',
'assistant.step.planningHike': 'A túra tervezése',
'assistant.step.planningHikeTo': 'Túra tervezése ide: {place}',
'assistant.step.expenses': 'A kiadások olvasása',
'assistant.step.shares': 'A részesedések kiszámítása',
'assistant.step.wind': 'A szél ellenőrzése',
'assistant.step.tracks': 'A GPX-nyomvonalak olvasása',
'assistant.step.bucketScan': 'A kívánságlista összevetése a rögzítéseiddel',
'assistant.step.atlasCountries': 'Országok keresése a rögzítéseidben',
'assistant.step.working': 'Dolgozom rajta',
'assistant.step.collapsed': '{count} lépés',
'assistant.step.collapsed.one': '{count} lépés',
@@ -441,6 +447,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Közlekedés hozzáadása',
'assistant.tool.toggle_vacay_entry': 'Szabadnap beállítása',
'assistant.tool.mark_country_visited': 'Ország megjelölése meglátogatottként',
'assistant.tool.confirm_bucket_list_visits': 'Kipipálás a kívánságlistán',
'assistant.tool.clear_bucket_list_visit': 'Pipa levétele a kívánságlistán',
'assistant.tool.accept_atlas_countries': 'Az országok hozzáadása az Atlaszhoz',
'assistant.tool.send_collab_message': 'Küldés az utazási csevegésbe',
'assistant.admin.chatgptShared':
'A saját ChatGPT-előfizetésedet osztod meg mindenkivel ezen a szerveren: a csevegéseik a te keretedből fogynak. Ellenőrizd, hogy az előfizetésed és az OpenAI feltételei ezt megengedik-e.',
+9
View File
@@ -113,6 +113,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Membaca pemesanan',
'assistant.step.planningHike': 'Merencanakan pendakian',
'assistant.step.planningHikeTo': 'Merencanakan pendakian ke {place}',
'assistant.step.expenses': 'Membaca pengeluaran',
'assistant.step.shares': 'Menghitung bagian masing-masing',
'assistant.step.wind': 'Memeriksa angin',
'assistant.step.tracks': 'Membaca jalur GPX',
'assistant.step.bucketScan': 'Mencocokkan daftar keinginan dengan rekamanmu',
'assistant.step.atlasCountries': 'Mencari negara di rekamanmu',
'assistant.step.working': 'Sedang dikerjakan',
'assistant.step.collapsed': '{count} langkah',
'assistant.change.title': 'Perubahan yang disarankan',
@@ -416,6 +422,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Tambah transportasi',
'assistant.tool.toggle_vacay_entry': 'Tetapkan hari cuti',
'assistant.tool.mark_country_visited': 'Tandai negara sebagai dikunjungi',
'assistant.tool.confirm_bucket_list_visits': 'Coret di daftar keinginan',
'assistant.tool.clear_bucket_list_visit': 'Batalkan coretan di daftar keinginan',
'assistant.tool.accept_atlas_countries': 'Tambahkan negara ke Atlas',
'assistant.tool.send_collab_message': 'Kirim ke obrolan perjalanan',
'assistant.admin.chatgptShared':
'Kamu membagikan paket ChatGPT milikmu kepada semua orang di server ini: obrolan mereka dihitung dari paketmu. Pastikan paketmu dan ketentuan OpenAI mengizinkannya.',
+9
View File
@@ -117,6 +117,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Leggo la prenotazione',
'assistant.step.planningHike': 'Pianifico l’escursione',
'assistant.step.planningHikeTo': 'Pianifico l’escursione fino a {place}',
'assistant.step.expenses': 'Leggo le spese',
'assistant.step.shares': 'Calcolo le quote',
'assistant.step.wind': 'Controllo il vento',
'assistant.step.tracks': 'Leggo le tracce GPX',
'assistant.step.bucketScan': 'Confronto la lista dei desideri con le tue registrazioni',
'assistant.step.atlasCountries': 'Cerco i paesi nelle tue registrazioni',
'assistant.step.working': 'Ci sto lavorando',
'assistant.step.collapsed': '{count} passaggi',
'assistant.step.collapsed.one': '{count} passaggio',
@@ -442,6 +448,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Aggiungi trasporto',
'assistant.tool.toggle_vacay_entry': 'Segna un giorno di ferie',
'assistant.tool.mark_country_visited': 'Segna il paese come visitato',
'assistant.tool.confirm_bucket_list_visits': 'Spunta nella lista dei desideri',
'assistant.tool.clear_bucket_list_visit': 'Togli la spunta nella lista dei desideri',
'assistant.tool.accept_atlas_countries': 'Aggiungi i paesi all’Atlas',
'assistant.tool.send_collab_message': 'Invia nella chat del viaggio',
'assistant.admin.chatgptShared':
'Condividi il tuo abbonamento ChatGPT con tutti su questo server: le loro chat contano sul tuo piano. Verifica che il tuo piano e i termini di OpenAI lo consentano.',
+9
View File
@@ -113,6 +113,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': '予約を読み込み中',
'assistant.step.planningHike': 'ハイキングを計画中',
'assistant.step.planningHikeTo': '{place}までのハイキングを計画中',
'assistant.step.expenses': '支出を読み込み中',
'assistant.step.shares': '各自の負担額を計算中',
'assistant.step.wind': '風を確認中',
'assistant.step.tracks': 'GPX トラックを読み込み中',
'assistant.step.bucketScan': 'ウィッシュリストを記録と照合中',
'assistant.step.atlasCountries': '記録から訪れた国を探し中',
'assistant.step.working': '処理中',
'assistant.step.collapsed': '{count} ステップ',
'assistant.change.title': '提案された変更',
@@ -411,6 +417,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': '交通手段を追加',
'assistant.tool.toggle_vacay_entry': '休暇日を設定',
'assistant.tool.mark_country_visited': '国を訪問済みにする',
'assistant.tool.confirm_bucket_list_visits': 'ウィッシュリストにチェックを付ける',
'assistant.tool.clear_bucket_list_visit': 'ウィッシュリストのチェックを外す',
'assistant.tool.accept_atlas_countries': '国をアトラスに追加',
'assistant.tool.send_collab_message': '旅行チャットに送信',
'assistant.admin.chatgptShared':
'自分の ChatGPT プランをこのサーバーの全員と共有します。全員のチャットがあなたのプランの利用枠を使います。プランと OpenAI の規約で許可されているか確認してください。',
+9
View File
@@ -112,6 +112,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': '예약을 읽는 중',
'assistant.step.planningHike': '하이킹 계획 중',
'assistant.step.planningHikeTo': '{place}까지 하이킹 계획 중',
'assistant.step.expenses': '지출을 읽는 중',
'assistant.step.shares': '각자의 몫을 계산하는 중',
'assistant.step.wind': '바람을 확인하는 중',
'assistant.step.tracks': 'GPX 트랙을 읽는 중',
'assistant.step.bucketScan': '위시리스트를 기록과 대조하는 중',
'assistant.step.atlasCountries': '기록에서 방문한 나라를 찾는 중',
'assistant.step.working': '작업 중',
'assistant.step.collapsed': '{count}단계',
'assistant.change.title': '제안된 변경 사항',
@@ -408,6 +414,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': '교통편 추가',
'assistant.tool.toggle_vacay_entry': '휴가일 지정',
'assistant.tool.mark_country_visited': '국가를 방문함으로 표시',
'assistant.tool.confirm_bucket_list_visits': '위시리스트에서 완료 처리',
'assistant.tool.clear_bucket_list_visit': '위시리스트 완료 표시 취소',
'assistant.tool.accept_atlas_countries': '국가를 아틀라스에 추가',
'assistant.tool.send_collab_message': '여행 채팅으로 보내기',
'assistant.admin.chatgptShared':
'내 ChatGPT 요금제를 이 서버의 모든 사람과 공유합니다. 모든 사람의 채팅이 내 요금제 한도에서 차감됩니다. 요금제와 OpenAI 약관에서 허용되는지 확인하세요.',
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Boeking lezen',
'assistant.step.planningHike': 'Wandeling plannen',
'assistant.step.planningHikeTo': 'Plant de wandeling naar {place}',
'assistant.step.expenses': 'De uitgaven lezen',
'assistant.step.shares': 'De aandelen berekenen',
'assistant.step.wind': 'De wind controleren',
'assistant.step.tracks': 'De GPX-tracks lezen',
'assistant.step.bucketScan': 'Je wensenlijst naast je opnames leggen',
'assistant.step.atlasCountries': 'Landen zoeken in je opnames',
'assistant.step.working': 'Bezig',
'assistant.step.collapsed': '{count} stappen',
'assistant.step.collapsed.one': '{count} stap',
@@ -437,6 +443,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Vervoer toevoegen',
'assistant.tool.toggle_vacay_entry': 'Vakantiedag instellen',
'assistant.tool.mark_country_visited': 'Land als bezocht markeren',
'assistant.tool.confirm_bucket_list_visits': 'Afvinken op de wensenlijst',
'assistant.tool.clear_bucket_list_visit': 'Vinkje op de wensenlijst weghalen',
'assistant.tool.accept_atlas_countries': 'Landen aan de Atlas toevoegen',
'assistant.tool.send_collab_message': 'Naar de reischat sturen',
'assistant.admin.chatgptShared':
'Je deelt je eigen ChatGPT-abonnement met iedereen op deze server: hun chats tellen mee voor jouw abonnement. Controleer of je abonnement en de voorwaarden van OpenAI dit toestaan.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Czytam rezerwację',
'assistant.step.planningHike': 'Planuję wędrówkę',
'assistant.step.planningHikeTo': 'Planuje wędrówkę do celu: {place}',
'assistant.step.expenses': 'Czytam wydatki',
'assistant.step.shares': 'Liczę udziały',
'assistant.step.wind': 'Sprawdzam wiatr',
'assistant.step.tracks': 'Czytam ślady GPX',
'assistant.step.bucketScan': 'Porównuję listę marzeń z Twoimi zapisami',
'assistant.step.atlasCountries': 'Szukam krajów w Twoich zapisach',
'assistant.step.working': 'Pracuję nad tym',
'assistant.step.collapsed': '{count} kroku',
'assistant.step.collapsed.one': '{count} krok',
@@ -479,6 +485,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Dodaj transport',
'assistant.tool.toggle_vacay_entry': 'Ustaw dzień urlopu',
'assistant.tool.mark_country_visited': 'Oznacz kraj jako odwiedzony',
'assistant.tool.confirm_bucket_list_visits': 'Odhacz na liście marzeń',
'assistant.tool.clear_bucket_list_visit': 'Cofnij odhaczenie na liście marzeń',
'assistant.tool.accept_atlas_countries': 'Dodaj kraje do Atlasu',
'assistant.tool.send_collab_message': 'Wyślij na czat podróży',
'assistant.admin.chatgptShared':
'Udostępniasz własny plan ChatGPT wszystkim na tym serwerze: ich czaty liczą się do twojego planu. Sprawdź, czy twój plan i warunki OpenAI na to pozwalają.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Читаю бронирование',
'assistant.step.planningHike': 'Планирую поход',
'assistant.step.planningHikeTo': 'Планирую поход, цель: {place}',
'assistant.step.expenses': 'Читаю расходы',
'assistant.step.shares': 'Считаю доли',
'assistant.step.wind': 'Проверяю ветер',
'assistant.step.tracks': 'Читаю GPX-треки',
'assistant.step.bucketScan': 'Сверяю список желаний с вашими записями',
'assistant.step.atlasCountries': 'Ищу страны в ваших записях',
'assistant.step.working': 'Работаю над этим',
'assistant.step.collapsed': '{count} шага',
'assistant.step.collapsed.one': '{count} шаг',
@@ -479,6 +485,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Добавить транспорт',
'assistant.tool.toggle_vacay_entry': 'Отметить день отпуска',
'assistant.tool.mark_country_visited': 'Отметить страну как посещённую',
'assistant.tool.confirm_bucket_list_visits': 'Отметить в списке желаний',
'assistant.tool.clear_bucket_list_visit': 'Снять отметку в списке желаний',
'assistant.tool.accept_atlas_countries': 'Добавить страны в Атлас',
'assistant.tool.send_collab_message': 'Отправить в чат поездки',
'assistant.admin.chatgptShared':
'Вы делитесь своей подпиской ChatGPT со всеми на этом сервере: их чаты расходуют ваш лимит. Проверьте, что ваш тариф и условия OpenAI это допускают.',
+9
View File
@@ -115,6 +115,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Čítam rezerváciu',
'assistant.step.planningHike': 'Plánujem túru',
'assistant.step.planningHikeTo': 'Plánujem túru do cieľa {place}',
'assistant.step.expenses': 'Čítam výdavky',
'assistant.step.shares': 'Počítam podiely',
'assistant.step.wind': 'Pozerám vietor',
'assistant.step.tracks': 'Čítam GPX stopy',
'assistant.step.bucketScan': 'Porovnávam zoznam prianí s vašimi záznamami',
'assistant.step.atlasCountries': 'Hľadám krajiny vo vašich záznamoch',
'assistant.step.working': 'Pracujem na tom',
'assistant.step.collapsed': '{count} krokov',
'assistant.step.collapsed.one': '{count} krok',
@@ -455,6 +461,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Pridať dopravu',
'assistant.tool.toggle_vacay_entry': 'Nastaviť deň dovolenky',
'assistant.tool.mark_country_visited': 'Označiť krajinu ako navštívenú',
'assistant.tool.confirm_bucket_list_visits': 'Odškrtnúť v zozname prianí',
'assistant.tool.clear_bucket_list_visit': 'Zrušiť odškrtnutie v zozname prianí',
'assistant.tool.accept_atlas_countries': 'Pridať krajiny do Atlasu',
'assistant.tool.send_collab_message': 'Poslať do chatu cesty',
'assistant.admin.chatgptShared':
'Zdieľaš svoje vlastné predplatné ChatGPT so všetkými na tomto serveri: ich chaty sa počítajú do tvojho plánu. Over, že to tvoj plán a podmienky OpenAI dovoľujú.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Läser bokningen',
'assistant.step.planningHike': 'Planerar vandringen',
'assistant.step.planningHikeTo': 'Planerar vandringen till {place}',
'assistant.step.expenses': 'Läser utgifterna',
'assistant.step.shares': 'Räknar ut andelarna',
'assistant.step.wind': 'Kollar vinden',
'assistant.step.tracks': 'Läser GPX-spåren',
'assistant.step.bucketScan': 'Stämmer av önskelistan mot dina inspelningar',
'assistant.step.atlasCountries': 'Letar efter länder i dina inspelningar',
'assistant.step.working': 'Arbetar på det',
'assistant.step.collapsed': '{count} steg',
'assistant.step.collapsed.one': '{count} steg',
@@ -435,6 +441,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Lägg till transport',
'assistant.tool.toggle_vacay_entry': 'Sätt en semesterdag',
'assistant.tool.mark_country_visited': 'Markera landet som besökt',
'assistant.tool.confirm_bucket_list_visits': 'Bocka av på önskelistan',
'assistant.tool.clear_bucket_list_visit': 'Ta bort bocken på önskelistan',
'assistant.tool.accept_atlas_countries': 'Lägg till länderna i Atlas',
'assistant.tool.send_collab_message': 'Skicka till reschatten',
'assistant.admin.chatgptShared':
'Du delar ditt eget ChatGPT-abonnemang med alla på den här servern: deras chattar räknas mot ditt abonnemang. Kontrollera att ditt abonnemang och OpenAIs villkor tillåter det.',
+9
View File
@@ -111,6 +111,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'กำลังอ่านการจอง',
'assistant.step.planningHike': 'กำลังวางแผนเดินป่า',
'assistant.step.planningHikeTo': 'กำลังวางแผนเดินป่าไปยัง {place}',
'assistant.step.expenses': 'กำลังอ่านรายจ่าย',
'assistant.step.shares': 'กำลังคำนวณส่วนของแต่ละคน',
'assistant.step.wind': 'กำลังดูลม',
'assistant.step.tracks': 'กำลังอ่านเส้นทาง GPX',
'assistant.step.bucketScan': 'กำลังตรวจสอบรายการอยากไปกับบันทึกของคุณ',
'assistant.step.atlasCountries': 'กำลังหาประเทศจากบันทึกของคุณ',
'assistant.step.working': 'กำลังดำเนินการ',
'assistant.step.collapsed': '{count} ขั้นตอน',
'assistant.change.title': 'การเปลี่ยนแปลงที่แนะนำ',
@@ -408,6 +414,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'เพิ่มการเดินทาง',
'assistant.tool.toggle_vacay_entry': 'กำหนดวันลา',
'assistant.tool.mark_country_visited': 'ทำเครื่องหมายว่าเคยไปประเทศนี้',
'assistant.tool.confirm_bucket_list_visits': 'ทำเครื่องหมายว่าสำเร็จในรายการอยากไป',
'assistant.tool.clear_bucket_list_visit': 'ยกเลิกเครื่องหมายสำเร็จในรายการอยากไป',
'assistant.tool.accept_atlas_countries': 'เพิ่มประเทศลงในแผนที่โลก',
'assistant.tool.send_collab_message': 'ส่งไปยังแชตทริป',
'assistant.admin.chatgptShared':
'คุณกำลังแชร์แพ็กเกจ ChatGPT ของตัวเองกับทุกคนบนเซิร์ฟเวอร์นี้: แชตของทุกคนจะนับรวมในแพ็กเกจของคุณ ตรวจสอบว่าแพ็กเกจและข้อกำหนดของ OpenAI อนุญาต',
+9
View File
@@ -114,6 +114,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Rezervasyon okunuyor',
'assistant.step.planningHike': 'Yürüyüş planlanıyor',
'assistant.step.planningHikeTo': '{place} için yürüyüş planlanıyor',
'assistant.step.expenses': 'Harcamalar okunuyor',
'assistant.step.shares': 'Paylar hesaplanıyor',
'assistant.step.wind': 'Rüzgar kontrol ediliyor',
'assistant.step.tracks': 'GPX izleri okunuyor',
'assistant.step.bucketScan': 'Dilek listesi kayıtlarınızla karşılaştırılıyor',
'assistant.step.atlasCountries': 'Kayıtlarınızda ülkeler aranıyor',
'assistant.step.working': 'Üzerinde çalışılıyor',
'assistant.step.collapsed': '{count} adım',
'assistant.step.collapsed.one': '{count} adım',
@@ -435,6 +441,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Ulaşım ekle',
'assistant.tool.toggle_vacay_entry': 'İzin günü belirle',
'assistant.tool.mark_country_visited': 'Ülkeyi ziyaret edildi olarak işaretle',
'assistant.tool.confirm_bucket_list_visits': 'Dilek listesinde işaretle',
'assistant.tool.clear_bucket_list_visit': 'Dilek listesindeki işareti kaldır',
'assistant.tool.accept_atlas_countries': 'Ülkeleri Atlas’a ekle',
'assistant.tool.send_collab_message': 'Gezi sohbetine gönder',
'assistant.admin.chatgptShared':
'Kendi ChatGPT aboneliğini bu sunucudaki herkesle paylaşıyorsun: sohbetleri senin planından düşer. Planının ve OpenAI koşullarının buna izin verip vermediğini kontrol et.',
+9
View File
@@ -116,6 +116,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Читаю бронювання',
'assistant.step.planningHike': 'Планую похід',
'assistant.step.planningHikeTo': 'Планую похід, ціль: {place}',
'assistant.step.expenses': 'Читаю витрати',
'assistant.step.shares': 'Рахую частки',
'assistant.step.wind': 'Перевіряю вітер',
'assistant.step.tracks': 'Читаю GPX-треки',
'assistant.step.bucketScan': 'Звіряю список бажань із вашими записами',
'assistant.step.atlasCountries': 'Шукаю країни у ваших записах',
'assistant.step.working': 'Працюю над цим',
'assistant.step.collapsed': '{count} кроку',
'assistant.step.collapsed.one': '{count} крок',
@@ -477,6 +483,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Додати транспорт',
'assistant.tool.toggle_vacay_entry': 'Позначити день відпустки',
'assistant.tool.mark_country_visited': 'Позначити країну як відвідану',
'assistant.tool.confirm_bucket_list_visits': 'Позначити виконаним у списку бажань',
'assistant.tool.clear_bucket_list_visit': 'Зняти позначку в списку бажань',
'assistant.tool.accept_atlas_countries': 'Додати країни до Атласу',
'assistant.tool.send_collab_message': 'Надіслати в чат подорожі',
'assistant.admin.chatgptShared':
'Ви ділитеся своєю підпискою ChatGPT з усіма на цьому сервері: їхні чати витрачають ваш ліміт. Перевірте, що ваш тариф і умови OpenAI це дозволяють.',
+9
View File
@@ -113,6 +113,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': 'Đang đọc đặt chỗ',
'assistant.step.planningHike': 'Đang lên kế hoạch đi bộ',
'assistant.step.planningHikeTo': 'Đang lên kế hoạch đi bộ đến {place}',
'assistant.step.expenses': 'Đang đọc các khoản chi',
'assistant.step.shares': 'Đang tính phần của mỗi người',
'assistant.step.wind': 'Đang xem gió',
'assistant.step.tracks': 'Đang đọc các tuyến GPX',
'assistant.step.bucketScan': 'Đang đối chiếu danh sách mong muốn với bản ghi của bạn',
'assistant.step.atlasCountries': 'Đang tìm các quốc gia trong bản ghi của bạn',
'assistant.step.working': 'Đang xử lý',
'assistant.step.collapsed': '{count} bước',
'assistant.change.title': 'Thay đổi được đề xuất',
@@ -411,6 +417,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': 'Thêm phương tiện',
'assistant.tool.toggle_vacay_entry': 'Đặt ngày nghỉ phép',
'assistant.tool.mark_country_visited': 'Đánh dấu quốc gia đã đến',
'assistant.tool.confirm_bucket_list_visits': 'Đánh dấu hoàn thành trong danh sách mong muốn',
'assistant.tool.clear_bucket_list_visit': 'Bỏ đánh dấu trong danh sách mong muốn',
'assistant.tool.accept_atlas_countries': 'Thêm các quốc gia vào Atlas',
'assistant.tool.send_collab_message': 'Gửi vào trò chuyện chuyến đi',
'assistant.admin.chatgptShared':
'Bạn đang chia sẻ gói ChatGPT của riêng mình với mọi người trên máy chủ này: các cuộc trò chuyện của họ được tính vào gói của bạn. Hãy kiểm tra gói của bạn và điều khoản của OpenAI có cho phép không.',
+9
View File
@@ -110,6 +110,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': '正在讀取預訂',
'assistant.step.planningHike': '正在規劃健行路線',
'assistant.step.planningHikeTo': '正在規劃前往{place}的健行路線',
'assistant.step.expenses': '正在讀取支出',
'assistant.step.shares': '正在計算各人分攤',
'assistant.step.wind': '正在查看風況',
'assistant.step.tracks': '正在讀取 GPX 軌跡',
'assistant.step.bucketScan': '正在用你的記錄核對願望清單',
'assistant.step.atlasCountries': '正在你的記錄中尋找到過的國家',
'assistant.step.working': '處理中',
'assistant.step.collapsed': '{count} 個步驟',
'assistant.change.title': '建議的變更',
@@ -405,6 +411,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': '新增交通',
'assistant.tool.toggle_vacay_entry': '設為休假日',
'assistant.tool.mark_country_visited': '標記國家為已去過',
'assistant.tool.confirm_bucket_list_visits': '在願望清單中打勾',
'assistant.tool.clear_bucket_list_visit': '取消願望清單中的打勾',
'assistant.tool.accept_atlas_countries': '將國家新增到地圖集',
'assistant.tool.send_collab_message': '傳送到行程聊天',
'assistant.admin.chatgptShared':
'你正在與此伺服器上的所有人共用你自己的 ChatGPT 訂閱:他們的聊天會計入你的方案。請確認你的方案和 OpenAI 的條款允許這樣做。',
+9
View File
@@ -110,6 +110,12 @@ const assistant: TranslationStrings = {
'assistant.step.readingBooking': '正在读取预订',
'assistant.step.planningHike': '正在规划徒步路线',
'assistant.step.planningHikeTo': '正在规划前往{place}的徒步路线',
'assistant.step.expenses': '正在读取支出',
'assistant.step.shares': '正在计算各人分摊',
'assistant.step.wind': '正在查看风况',
'assistant.step.tracks': '正在读取 GPX 轨迹',
'assistant.step.bucketScan': '正在用你的记录核对愿望清单',
'assistant.step.atlasCountries': '正在你的记录中查找去过的国家',
'assistant.step.working': '正在处理',
'assistant.step.collapsed': '{count} 个步骤',
'assistant.change.title': '建议的更改',
@@ -405,6 +411,9 @@ const assistant: TranslationStrings = {
'assistant.tool.create_transport': '添加交通',
'assistant.tool.toggle_vacay_entry': '设为休假日',
'assistant.tool.mark_country_visited': '标记国家为已去过',
'assistant.tool.confirm_bucket_list_visits': '在愿望清单中勾掉',
'assistant.tool.clear_bucket_list_visit': '撤销愿望清单中的勾选',
'assistant.tool.accept_atlas_countries': '将国家添加到地图集',
'assistant.tool.send_collab_message': '发送到行程聊天',
'assistant.admin.chatgptShared':
'你正在与此服务器上的所有人共享你自己的 ChatGPT 订阅:他们的聊天会计入你的套餐。请确认你的套餐和 OpenAI 的条款允许这样做。',