diff --git a/ar/basic/admin-panel/computed-outbox.mdx b/ar/basic/admin-panel/computed-outbox.mdx
index b87deade..34ce45eb 100644
--- a/ar/basic/admin-panel/computed-outbox.mdx
+++ b/ar/basic/admin-panel/computed-outbox.mdx
@@ -90,7 +90,9 @@ description: "راقب تسليم BullMQ وتراكم المهام المحسو
لا يمنع الإيقاف المؤقت إلا العوامل من المطالبة بمهام محسوبة جديدة لتلك المساحة. لا تتوقف المهام الجاري تنفيذها، وتنتظر المهام المطابقة حتى انتهاء الإيقاف بدلاً من إسقاطها.
-ينتهي الإيقاف المؤقت دائمًا تلقائيًا، وساعتان هما أطول مدة يمكنك تعيينها. إذا استمرت الحادثة بعد ذلك، فأوقف المساحة مؤقتًا مرة أخرى من هذه الصفحة. تعرض القائمة كل إيقاف نشط مع منشئه وسببه ووقت الاستئناف التلقائي، إلى جانب عدد المهام المعلقة التي تحتجزها الإيقافات النشطة، حتى تتمكن من تقدير الأعمال المتراكمة التي سيحررها الاستئناف. لإنهاء إيقاف مبكرًا، انقر على **استئناف** في صفه وأكد الإجراء.
+ينتهي الإيقاف المؤقت دائمًا تلقائيًا، وساعتان هما أطول مدة يمكنك تعيينها. إذا استمرت الحادثة بعد ذلك، فانقر على **تمديد** في صف الإيقاف، واختر مدة الاستمرار ثم أكد. يُحسب وقت الاستئناف التلقائي الجديد من لحظة التأكيد، وبحد أقصى ساعتان أيضًا، فلا تُستأنف المساحة في الأثناء.
+
+تعرض القائمة كل إيقاف نشط مع منشئه وسببه ووقت الاستئناف التلقائي، إلى جانب عدد المهام المعلقة التي تحتجزها الإيقافات النشطة، حتى تتمكن من تقدير الأعمال المتراكمة التي سيحررها الاستئناف. لإنهاء إيقاف مبكرًا، انقر على **استئناف** في صفه وأكد الإجراء.
## ضبط التزامن
diff --git a/ar/basic/admin-panel/table-query-ops.mdx b/ar/basic/admin-panel/table-query-ops.mdx
index 61e5fcca..8c4b04f5 100644
--- a/ar/basic/admin-panel/table-query-ops.mdx
+++ b/ar/basic/admin-panel/table-query-ops.mdx
@@ -29,7 +29,11 @@ description: "راجع توصيات مخاطر الاستعلام للجداول
يفتح **التحليل المتعمق** مساحة عمل التحليل مع تعبئة ذلك الجدول مسبقًا.
-عندما يرصد المحلل بحثًا كثيفًا بسلاسل فرعية عبر جدول، ينشئ توصية واحدة من نوع **GIN للنص المنشأ** للجدول كله بدل فهرس لكل حقل. يعرض هذا الصف **إنشاء مسار بحث** بدل **التحليل المتعمق**، ولا يظهر **إضافة فهرس** لأن مسار الوصول يُطبق من مساحة التحليل ويتطلب أولًا **نموذج بحث EXPLAIN**. وتُغلق التوصية تلقائيًا بعد حصول الجدول على المسار.
+عندما يرصد المحلل بحثًا كثيفًا بسلاسل فرعية عبر جدول، ينشئ توصية واحدة من نوع **GIN للنص المنشأ** للجدول كله بدل فهرس لكل حقل. يعرض هذا الصف **إنشاء مسار بحث** بدل **التحليل المتعمق**، ولا يظهر **إضافة فهرس**. وتُغلق التوصية تلقائيًا بعد حصول الجدول على المسار.
+
+ينفذ **إنشاء مسار بحث** تحليلًا تجريبيًا (dry run) للجدول داخل نافذة في الصفحة نفسها، دون مغادرتها. تعرض النافذة مزود الفهرس المرشح وعدد الحقول المغطاة وعدد الصفوف التقديري وتكلفة `EXPLAIN` قبل التغيير وبعده. أدخل نموذج بحث لا يقل طوله عن الحد الأدنى المعروض؛ يُستخدم للتحقق فقط ولا يُحفظ. وفي الجداول الكبيرة، أكد أيضًا خانة نافذة الصيانة. بعد التأكيد يُعاد التحقق من المرشح ثم يُفعَّل مسار البحث.
+
+وإذا لم ينتج التحليل أي مرشح، تشرح النافذة السبب ولا تنفذ شيئًا. تُرفض الجداول العريضة لأن Teable لا ينشئ لها مستند بحث يغطي كل الحقول، ولن يغيّر ذلك إدخال نموذج بحث أطول. انقر عندها على **تحليل الحقول المحددة** للانتقال إلى مساحة التحليل وتحليل الحقول التي يبحث فيها المستخدمون فعلًا.
توجد علامتا تبويب إضافيتان بجوارها:
diff --git a/ar/basic/field/conditional-lookup.mdx b/ar/basic/field/conditional-lookup.mdx
index 7459f2fc..1d8bf25a 100644
--- a/ar/basic/field/conditional-lookup.mdx
+++ b/ar/basic/field/conditional-lookup.mdx
@@ -32,6 +32,9 @@ description: "ابحث عن البيانات عبر الجداول باستخد
عيّن حقل الفرز واتجاه الفرز وعدد السجلات المطلوب عرضها عند الحاجة.
+
+ فعّل **إزالة القيم المكررة** لتبقى كل قيمة عند أول ظهور لها فقط. تتم الإزالة بعد تطبيق التصفية والفرز وحد عدد السجلات، لذا يظل الحد محسوبًا على السجلات المطابقة لا على القيم الباقية في النتيجة.
+
يلزم شرط تصفية واحد على الأقل. وللشروط المتعددة، اختر "استيفاء جميع الشروط (AND)" أو "استيفاء أي شرط (OR)".
diff --git a/ar/basic/field/lookup.mdx b/ar/basic/field/lookup.mdx
index 200f0685..dcc39eb7 100644
--- a/ar/basic/field/lookup.mdx
+++ b/ar/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ description: "ارجع إلى قيم الحقول من جدول مرتبط عب
اختر الحقل المراد قراءته من جدول المصدر، مثل تاريخ ميلاد مؤلف، أو رقم هاتف عميل، أو سعر منتج.
+
+ إذا كان الارتباط يشير إلى عدة سجلات، فعّل **إزالة القيم المكررة** لتبقى القيمة المتكررة عند أول ظهور لها فقط.
+
## المزامنة التلقائية
diff --git a/ar/basic/table/import.mdx b/ar/basic/table/import.mdx
index 098ae810..b9b3c895 100644
--- a/ar/basic/table/import.mdx
+++ b/ar/basic/table/import.mdx
@@ -21,6 +21,9 @@ description: "استورد بيانات CSV أو Excel أو Airtable أو Google
اختر ملف CSV أو Excel المطلوب استيراده. يجب ألا يتجاوز حجم ملفات Excel **5MB**.
+
+ عند إنشاء جدول جديد، يعرض Teable خيار **الاستيراد باستخدام الذكاء الاصطناعي** أو **استيراد يدوي**. ولا يظهر خيار الذكاء الاصطناعي إلا إذا كانت دردشة الذكاء الاصطناعي متاحة لك في قاعدة البيانات.
+
راجع المعاينة بعد الرفع. عند إنشاء جدول جديد، يمكنك تعديل أنواع الحقول. وعند الإلحاق بجدول موجود، تحقق من كيفية ربط أعمدة الملف بالحقول المستهدفة.
@@ -43,6 +46,10 @@ description: "استورد بيانات CSV أو Excel أو Airtable أو Google
className="docs-screenshot"
/>
+بعد رفع الملف، يعرض Teable خيار **تحسين البيانات واستيرادها باستخدام الذكاء الاصطناعي**. عند اختيار **الاستيراد باستخدام الذكاء الاصطناعي**، يذهب الملف إلى دردشة الذكاء الاصطناعي التي تحلل البيانات وتضبط بنية الجدول والعلاقات وأنواع الحقول ثم تنفذ الاستيراد. تُغلق نافذة الاستيراد وتُفتح لوحة الدردشة، فتتابع التقدم وترد لتوجيه النتيجة. يستهلك ذلك أرصدة الذكاء الاصطناعي ويتطلب صلاحية إنشاء الجداول، لذا يظهر الخيار فقط عندما تكون دردشة الذكاء الاصطناعي متاحة لك، ولا يظهر عند الاستيراد إلى جدول موجود.
+
+أما **استيراد يدوي** فينتقل إلى معاينة الحقول، ويعيدك زر **رجوع** في المعاينة إلى هذا الاختيار.
+
بعد الرفع، يتوقع Teable أنواع الحقول من أول 5,000 صف من البيانات. ويمكنك تعديلها قبل الاستيراد.
Legen Sie bei Bedarf Sortierfeld, Sortierrichtung und Anzahl der anzuzeigenden Datensätze fest.
+
+ Aktivieren Sie **Doppelte Werte entfernen**, damit jeder Wert nur bei seinem ersten Auftreten erhalten bleibt. Teable entfernt die Duplikate erst nach Filter, Sortierung und Datensatzbegrenzung, die Begrenzung zählt also weiterhin die passenden Datensätze und nicht die verbleibenden Werte.
+
Mindestens eine Filterbedingung ist erforderlich. Wählen Sie bei mehreren Bedingungen „Alle Bedingungen sind erfüllt (UND)“ oder „Eine beliebige Bedingung ist erfüllt (ODER)“.
diff --git a/de/basic/field/lookup.mdx b/de/basic/field/lookup.mdx
index 94e40367..3c11f859 100644
--- a/de/basic/field/lookup.mdx
+++ b/de/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ Suchfelder bauen auf **Verknüpfungsfeldern** auf. Ein Suchfeld verweist auf ein
Wählen Sie das Feld aus, das aus der Quelltabelle gelesen werden soll, beispielsweise das Geburtsdatum eines Autors, die Telefonnummer eines Kunden oder einen Produktpreis.
+
+ Wenn die Verknüpfung auf mehrere Datensätze zeigt, aktivieren Sie **Doppelte Werte entfernen**. Ein mehrfach vorkommender Wert bleibt dann nur an seiner ersten Position erhalten.
+
## Automatische Synchronisierung
diff --git a/de/basic/table/import.mdx b/de/basic/table/import.mdx
index 2dad854d..31c5160b 100644
--- a/de/basic/table/import.mdx
+++ b/de/basic/table/import.mdx
@@ -21,6 +21,9 @@ Excel-Dateien sind auf **5 MB** begrenzt. Wenn Sie einen größeren Datensatz im
Wählen Sie die CSV- oder Excel-Datei aus, die Sie importieren möchten. Excel-Dateien müssen **5 MB** oder kleiner sein.
+
+ Beim Erstellen einer neuen Tabelle bietet Teable **Mit KI importieren** oder **Manuell importieren** an. Die KI-Variante erscheint nur, wenn AI Chat in dieser Base für Sie verfügbar ist.
+
Prüfen Sie die Vorschau nach dem Upload. Beim Erstellen einer neuen Tabelle können Sie Feldtypen anpassen. Beim Anhängen an eine bestehende Tabelle bestätigen Sie, wie Dateispalten den Zielfeldern zugeordnet werden.
@@ -43,6 +46,10 @@ Klicken Sie oben im linken Verzeichnis auf `+` oder auf `+` beim Ordner, der die
className="docs-screenshot"
/>
+Nach dem Upload bietet Teable **Mit KI optimieren und importieren** an. **Mit KI importieren** übergibt die Datei an AI Chat: Die KI analysiert die Daten, passt Tabellenstruktur, Verknüpfungen und Feldtypen an und führt den Import aus. Der Importdialog schließt sich, das Chat-Panel öffnet sich, sodass Sie den Fortschritt verfolgen und das Ergebnis per Antwort steuern können. Das verbraucht KI-Guthaben und setzt die Berechtigung zum Erstellen von Tabellen voraus. Deshalb erscheint das Angebot nur, wenn AI Chat für Sie verfügbar ist, und nie beim Import in eine bestehende Tabelle.
+
+**Manuell importieren** führt stattdessen zur Feldvorschau; **Zurück** in der Vorschau kehrt zu dieser Auswahl zurück.
+
Nach dem Upload erkennt Teable Feldtypen anhand der ersten 5.000 Datenzeilen. Sie können sie vor dem Import anpassen.
Set the sort field, sort direction, and number of records to show when needed.
+
+ Turn on **Remove duplicate values** to keep each value only the first time it appears. Teable removes the duplicates after applying the filter, sorting, and record limit, so the limit still counts the matching records rather than the values left in the result.
+
At least one filter condition is required. For multiple conditions, choose "All conditions are met (AND)" or "Any condition is met (OR)".
diff --git a/en/basic/field/lookup.mdx b/en/basic/field/lookup.mdx
index bad04527..63c9bc4e 100644
--- a/en/basic/field/lookup.mdx
+++ b/en/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ Lookup fields are built on **Link** fields. A Lookup field references a selected
Choose the field to read from the source table, such as an author's birth date, a customer's phone number, or a product price.
+
+ When the link points to several records, turn on **Remove duplicate values** so a value that appears more than once is kept only the first time it appears.
+
## Automatic Sync
diff --git a/en/basic/table/import.mdx b/en/basic/table/import.mdx
index d320d9f2..76425a39 100644
--- a/en/basic/table/import.mdx
+++ b/en/basic/table/import.mdx
@@ -21,6 +21,9 @@ Excel files are limited to **5MB**. If you need to import a larger dataset, save
Select the CSV or Excel file you want to import. Excel files must be **5MB** or smaller.
+
+ When you create a new table, Teable offers **Import with AI** or **Import manually**. AI is only offered when AI Chat is available to you in the base.
+
Review the preview after upload. When creating a new table, you can adjust field types. When appending to an existing table, confirm how file columns map to target fields.
@@ -43,7 +46,11 @@ Click `+` at the top of the left directory, or `+` on the folder that should hol
className="docs-screenshot"
/>
-After upload, Teable predicts field types from the first 5,000 rows of data. You can adjust them before importing.
+Once the file is uploaded, Teable offers **Optimize and import with AI**. **Import with AI** hands the file to AI Chat, which analyzes the data, adjusts the table structure, relationships, and field types, and runs the import. The import dialog closes and the chat panel opens, so you can watch the progress and reply to steer the result. This uses AI credits and requires permission to create tables, so the offer appears only when AI Chat is available to you, and never when you import into an existing table.
+
+**Import manually** goes to the field preview instead, and **Back** in the preview returns to the choice.
+
+In that preview, Teable predicts field types from the first 5,000 rows of data. You can adjust them before importing.
Define el campo de ordenación, la dirección de ordenación y el número de registros que se mostrarán cuando sea necesario.
+
+ Activa **Eliminar valores duplicados** para conservar cada valor solo en su primera aparición. Teable elimina los duplicados después de aplicar el filtro, la ordenación y el límite de Registros, así que el límite sigue contando los Registros coincidentes y no los valores que quedan en el resultado.
+
Se requiere al menos una condición de filtrado. Si hay varias, elige "Se cumplen todas las condiciones (AND)" o "Se cumple alguna condición (OR)".
diff --git a/es/basic/field/lookup.mdx b/es/basic/field/lookup.mdx
index 7e3a0bdf..31c5f0ff 100644
--- a/es/basic/field/lookup.mdx
+++ b/es/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ Los Campos Búsqueda se basan en Campos **Enlace a Registro**. Un Campo Búsqued
Elige el Campo que quieres leer de la Tabla de origen, como la fecha de nacimiento de un autor, el número de teléfono de un cliente o el precio de un producto.
+
+ Si el vínculo apunta a varios Registros, activa **Eliminar valores duplicados** para conservar cada valor repetido solo en su primera aparición.
+
## Sincronización automática
diff --git a/es/basic/table/import.mdx b/es/basic/table/import.mdx
index d3990236..c8250079 100644
--- a/es/basic/table/import.mdx
+++ b/es/basic/table/import.mdx
@@ -21,6 +21,9 @@ Los archivos de Excel están limitados a **5 MB**. Si necesitas importar un conj
Selecciona el archivo CSV o de Excel que quieras importar. Los archivos de Excel deben tener un tamaño máximo de **5 MB**.
+
+ Al crear una Tabla nueva, Teable ofrece **Importar con IA** o **Importar manualmente**. La opción de IA solo aparece si el Chat de IA está disponible para ti en la Base.
+
Revisa la vista previa después de cargar el archivo. Al crear una Tabla nueva, puedes ajustar los tipos de Campo. Al añadir datos a una Tabla existente, confirma cómo se asignan las columnas del archivo a los Campos de destino.
@@ -43,6 +46,10 @@ Haz clic en `+` en la parte superior del directorio de la izquierda, o en `+` en
className="docs-screenshot"
/>
+Una vez cargado el archivo, Teable ofrece **Optimizar e importar con IA**. **Importar con IA** entrega el archivo al Chat de IA, que analiza los datos, ajusta la estructura de la Tabla, las relaciones y los tipos de Campo, y ejecuta la importación. El cuadro de diálogo de importación se cierra y se abre el panel de chat, así que puedes seguir el progreso y responder para orientar el resultado. Esto consume créditos de IA y requiere permiso para crear Tablas, por lo que la opción solo aparece cuando el Chat de IA está disponible para ti, y nunca al importar a una Tabla existente.
+
+**Importar manualmente** lleva a la vista previa de Campos, y **Volver** en la vista previa devuelve a esta elección.
+
Después de cargar el archivo, Teable predice los tipos de Campo a partir de las primeras 5000 filas de datos. Puedes ajustarlos antes de importar.
Définissez le Champ de tri, l’ordre de tri et le nombre d’Enregistrements à afficher si nécessaire.
+
+ Activez **Supprimer les valeurs en double** pour ne conserver chaque valeur qu’à sa première apparition. Teable supprime les doublons après le filtre, le tri et la limite d’Enregistrements : la limite porte donc toujours sur les Enregistrements correspondants, pas sur les valeurs restantes.
+
Au moins une condition de filtrage est requise. Pour plusieurs conditions, choisissez « Toutes les conditions sont remplies (ET) » ou « Au moins une condition est remplie (OU) ».
diff --git a/fr/basic/field/lookup.mdx b/fr/basic/field/lookup.mdx
index bd79574c..86f101d4 100644
--- a/fr/basic/field/lookup.mdx
+++ b/fr/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ Les Champs Recherche reposent sur les Champs **Lien**. Un Champ Recherche réfé
Choisissez le Champ à lire dans la Table source, comme la date de naissance d’un auteur, le numéro de téléphone d’un client ou le prix d’un produit.
+
+ Si le lien pointe vers plusieurs Enregistrements, activez **Supprimer les valeurs en double** : une valeur répétée n’est conservée qu’à sa première apparition.
+
## Synchronisation automatique
diff --git a/fr/basic/table/import.mdx b/fr/basic/table/import.mdx
index e1cadcb5..cfcffeca 100644
--- a/fr/basic/table/import.mdx
+++ b/fr/basic/table/import.mdx
@@ -21,6 +21,9 @@ Les fichiers Excel sont limités à **5 Mo**. Si vous devez importer un jeu de d
Sélectionnez le fichier CSV ou Excel que vous souhaitez importer. Les fichiers Excel doivent faire **5 Mo** ou moins.
+
+ Lors de la création d’une nouvelle Table, Teable propose **Importer avec l’IA** ou **Importer manuellement**. L’option IA n’apparaît que si AI Chat est disponible pour vous dans la Base.
+
Examinez l’aperçu après le téléversement. Lors de la création d’une nouvelle Table, vous pouvez ajuster les types de Champs. Lors de l’ajout à une Table existante, confirmez la correspondance entre les colonnes du fichier et les Champs cibles.
@@ -43,6 +46,10 @@ Cliquez sur `+` en haut du répertoire de gauche, ou sur `+` du dossier qui doit
className="docs-screenshot"
/>
+Une fois le fichier téléversé, Teable propose **Optimiser et importer avec l’IA**. **Importer avec l’IA** confie le fichier à AI Chat, qui analyse les données, ajuste la structure de la Table, les relations et les types de Champs, puis lance l’importation. La boîte de dialogue d’importation se ferme et le panneau de chat s’ouvre : vous suivez la progression et répondez pour orienter le résultat. Cette opération consomme des crédits IA et demande l’autorisation de créer des Tables. L’option n’apparaît donc que si AI Chat est disponible pour vous, et jamais lors d’une importation dans une Table existante.
+
+**Importer manuellement** ouvre l’aperçu des Champs, et **Retour** dans l’aperçu ramène à ce choix.
+
Après le téléversement, Teable prédit les types de Champs à partir des 5 000 premières lignes de données. Vous pouvez les ajuster avant l’importation.
Se necessario, imposta il Campo di ordinamento, la direzione e il numero di Record da mostrare.
+
+ Attiva **Rimuovi valori duplicati** per conservare ogni valore solo alla prima occorrenza. Teable rimuove i duplicati dopo filtro, ordinamento e limite di Record, quindi il limite continua a contare i Record corrispondenti e non i valori rimasti nel risultato.
+
È richiesta almeno una condizione di filtro. Per più condizioni, scegli "Tutte le condizioni sono soddisfatte (AND)" oppure "Una qualsiasi delle condizioni è soddisfatta (OR)".
diff --git a/it/basic/field/lookup.mdx b/it/basic/field/lookup.mdx
index f717d247..1866e9b1 100644
--- a/it/basic/field/lookup.mdx
+++ b/it/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ I Campi Lookup si basano sui Campi **Collegamento a Record**. Un Campo Lookup co
Scegli il Campo da leggere nella Tabella di origine, ad esempio la data di nascita di un autore, il numero di telefono di un cliente o il prezzo di un prodotto.
+
+ Se il collegamento punta a più Record, attiva **Rimuovi valori duplicati**: un valore ripetuto viene mantenuto solo alla prima occorrenza.
+
## Sincronizzazione automatica
diff --git a/it/basic/table/import.mdx b/it/basic/table/import.mdx
index b9cac9e2..1e06bcf1 100644
--- a/it/basic/table/import.mdx
+++ b/it/basic/table/import.mdx
@@ -21,6 +21,9 @@ I file Excel sono limitati a **5 MB**. Se devi importare un set di dati più gra
Seleziona il file CSV o Excel da importare. I file Excel devono avere dimensioni non superiori a **5 MB**.
+
+ Quando crei una nuova Tabella, Teable propone **Importa con l’AI** oppure **Importa manualmente**. L’opzione con AI compare solo se AI Chat è disponibile per te in quella Base.
+
Esamina l'anteprima dopo il caricamento. Quando crei una nuova Tabella, puoi modificare i tipi di Campo. Quando aggiungi dati a una Tabella esistente, conferma come associare le colonne del file ai Campi di destinazione.
@@ -43,6 +46,10 @@ Fai clic su `+` nella parte superiore della directory a sinistra oppure su `+` n
className="docs-screenshot"
/>
+Dopo il caricamento del file, Teable propone **Ottimizza e importa con l’AI**. **Importa con l’AI** passa il file ad AI Chat, che analizza i dati, adatta la struttura della Tabella, le relazioni e i tipi di Campo ed esegue l’importazione. La finestra di importazione si chiude e si apre il pannello della chat, così puoi seguire l’avanzamento e rispondere per indirizzare il risultato. L’operazione consuma crediti AI e richiede il permesso di creare Tabelle, quindi la proposta compare solo quando AI Chat è disponibile per te e mai quando importi in una Tabella esistente.
+
+**Importa manualmente** apre invece l’anteprima dei Campi e **Indietro** nell’anteprima riporta a questa scelta.
+
Dopo il caricamento, Teable prevede i tipi di Campo in base alle prime 5.000 righe di dati. Puoi modificarli prima dell'importazione.
OAuthアプリ](https://app.teable.ai/setting/oauth-app)を開きます。
2. **新しいOAuthアプリ**をクリックして、新しいアプリケーションを作成します。
3. 必須情報を入力します。
- - **OAuthアプリ名**: アプリケーションの内容がわかる名前
+ - **OAuthアプリ名**:アプリケーションの内容がわかる名前
- **ホームページURL**: アプリケーションのWebサイトの完全なURL
- **コールバックURL**: 認可後にユーザーがリダイレクトされるURL
- - **スコープ**: アプリケーションに必要な権限
- - **デバイスフローを有効化**: デフォルトではオフです。アプリケーションがデバイスコードを使ってユーザーをサインインさせる場合にのみオンにしてください
+ - **スコープ**:アプリケーションに必要な権限
+ - **デバイスフローを有効化**:デフォルトではオフです。アプリケーションがデバイスコードを使ってユーザーをサインインさせる場合にのみオンにしてください
4. アプリを作成したら、**クライアントシークレット**を生成します。再表示できないため、必ずコピーして安全に保管してください。
@@ -69,7 +69,7 @@ sequenceDiagram
GET https://app.teable.ai/api/oauth/authorize
```
-**クエリパラメーター:**
+**クエリパラメーター:**
| パラメーター | 必須 | 説明 |
|-----------|----------|-------------|
@@ -79,7 +79,7 @@ GET https://app.teable.ai/api/oauth/authorize
| `scope` | いいえ | スペース区切りのスコープ一覧。省略した場合は、OAuthアプリに設定されたスコープが使用されます |
| `state` | いいえ | CSRF攻撃を防ぐためのランダムな文字列。コールバックでそのまま返されます |
-**例:**
+**例:**
```
https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=https://yourapp.com/callback&scope=table|read%20record|read&state=random_state_string
@@ -98,12 +98,12 @@ https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIE
ユーザーが許可(または拒否)すると、TeableはコールバックURLへリダイレクトします。
-**成功時:**
+**成功時:**
```
https://yourapp.com/callback?code=AUTHORIZATION_CODE&state=random_state_string
```
-**拒否時:**
+**拒否時:**
```
https://yourapp.com/callback?error=access_denied&state=random_state_string
```
@@ -117,7 +117,7 @@ POST https://app.teable.ai/api/oauth/access_token
Content-Type: application/x-www-form-urlencoded
```
-**リクエスト本文:**
+**リクエスト本文:**
| パラメーター | 必須 | 説明 |
|-----------|----------|-------------|
@@ -127,7 +127,7 @@ Content-Type: application/x-www-form-urlencoded
| `client_secret` | はい | OAuthアプリのクライアントシークレット |
| `redirect_uri` | はい | 認可時に使用したredirect_uriと完全に一致する必要があります |
-**リクエスト例:**
+**リクエスト例:**
```bash
curl -X POST https://app.teable.ai/api/oauth/access_token \
@@ -139,7 +139,7 @@ curl -X POST https://app.teable.ai/api/oauth/access_token \
-d "redirect_uri=https://yourapp.com/callback"
```
-**レスポンス:**
+**レスポンス:**
```json
{
@@ -157,8 +157,8 @@ curl -X POST https://app.teable.ai/api/oauth/access_token \
| `token_type` | 常に`Bearer` |
| `access_token` | APIリクエストに使用するトークン |
| `refresh_token` | 新しいアクセストークンの取得に使用するトークン |
-| `expires_in` | アクセストークンの有効期間(秒、デフォルト: 600 = 10分) |
-| `refresh_expires_in` | リフレッシュトークンの有効期間(秒、デフォルト: 2592000 = 30日) |
+| `expires_in` | アクセストークンの有効期間(秒、デフォルト:600 = 10分) |
+| `refresh_expires_in` | リフレッシュトークンの有効期間(秒、デフォルト:2592000 = 30日) |
| `scopes` | 付与されたスコープの配列 |
## PKCE認可フロー
@@ -187,7 +187,7 @@ const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest)))
GET https://app.teable.ai/api/oauth/authorize
```
-**クエリパラメーター:**
+**クエリパラメーター:**
| パラメーター | 必須 | 説明 |
|-----------|----------|-------------|
@@ -199,7 +199,7 @@ GET https://app.teable.ai/api/oauth/authorize
| `code_challenge` | はい | code_verifierのSHA-256ハッシュ(Base64URLエンコード) |
| `code_challenge_method` | はい | `S256`である必要があります |
-**例:**
+**例:**
```
https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=http://127.0.0.1:8080/callback&code_challenge=YOUR_CODE_CHALLENGE&code_challenge_method=S256&state=random_state_string
@@ -218,7 +218,7 @@ POST https://app.teable.ai/api/oauth/access_token
Content-Type: application/x-www-form-urlencoded
```
-**リクエスト本文:**
+**リクエスト本文:**
| パラメーター | 必須 | 説明 |
|-----------|----------|-------------|
@@ -230,7 +230,7 @@ Content-Type: application/x-www-form-urlencoded
PKCEモードでは`client_secret`は不要です。代わりに`code_verifier`を使用して、クライアントの身元を検証します。
-**リクエスト例:**
+**リクエスト例:**
```bash
curl -X POST https://app.teable.ai/api/oauth/access_token \
@@ -314,7 +314,7 @@ POST https://app.teable.ai/api/oauth/access_token
Content-Type: application/x-www-form-urlencoded
```
-**リクエスト本文:**
+**リクエスト本文:**
| パラメーター | 必須 | 説明 |
|-----------|----------|-------------|
@@ -323,7 +323,7 @@ Content-Type: application/x-www-form-urlencoded
| `client_id` | はい | OAuthアプリのクライアントID |
| `client_secret` | 条件付き | 標準の認可コードモードでは必須、PKCEモードでは不要です |
-**リクエスト例:**
+**リクエスト例:**
```bash
curl -X POST https://app.teable.ai/api/oauth/access_token \
@@ -397,12 +397,12 @@ Authorization: Bearer YOUR_ACCESS_TOKEN
## ベストプラクティス
-1. **適切なモードを選択する**: バックエンドを持つWebアプリにはクライアントシークレットモード、ネイティブアプリ、CLI、SPAにはPKCEモード、ブラウザーからのリダイレクトを受信できないクライアントにはデバイスフローを使用します
-2. **シークレットを安全に保管する**: クライアント側のコードにクライアントシークレットを絶対に公開しないでください
-3. **stateパラメーターを使用する**: CSRF攻撃を防ぐため、ランダムな`state`パラメーターを必ず含めます
-4. **最小限のスコープを要求する**: アプリケーションで実際に必要な権限だけを要求します
-5. **トークンの更新を処理する**: 有効期限が切れる前にトークンを自動更新する処理を実装します
-6. **トークンを安全に保管する**: アクセストークンとリフレッシュトークンをサーバー上で安全に保管します
+1. **適切なモードを選択する**:バックエンドを持つWebアプリにはクライアントシークレットモード、ネイティブアプリ、CLI、SPAにはPKCEモード、ブラウザーからのリダイレクトを受信できないクライアントにはデバイスフローを使用します
+2. **シークレットを安全に保管する**:クライアント側のコードにクライアントシークレットを絶対に公開しないでください
+3. **stateパラメーターを使用する**:CSRF攻撃を防ぐため、ランダムな`state`パラメーターを必ず含めます
+4. **最小限のスコープを要求する**:アプリケーションで実際に必要な権限だけを要求します
+5. **トークンの更新を処理する**:有効期限が切れる前にトークンを自動更新する処理を実装します
+6. **トークンを安全に保管する**:アクセストークンとリフレッシュトークンをサーバー上で安全に保管します
## 完全な例
diff --git a/ja/api-doc/overview.mdx b/ja/api-doc/overview.mdx
index 8ab3d4bb..d4c17309 100644
--- a/ja/api-doc/overview.mdx
+++ b/ja/api-doc/overview.mdx
@@ -8,7 +8,7 @@ description: "ベースURL、認証、ID、一般的なリクエストパター
## ベースURL
- **Teable Cloud**: `https://app.teable.ai`
-- **セルフホスト**: 独自ドメインを使用します(例: `https://teable.example.com`)
+- **セルフホスト**:独自ドメインを使用します(例:`https://teable.example.com`)
このドキュメント内のすべてのAPIパスはベースURLからの相対パスであり、`/api`で始まります。
@@ -23,8 +23,8 @@ curl -H 'Authorization: Bearer __token__' \
次のいずれかを使用できます。
-- **パーソナルアクセストークン**: スクリプト、社内ツール、サーバーサイド連携に最適です。[アクセストークン](/ja/api-doc/token)をご覧ください。
-- **OAuthアクセストークン**: エンドユーザーがアクセスを許可するマルチテナント連携に最適です。[OAuthアプリ](/ja/api-doc/oauth)をご覧ください。
+- **パーソナルアクセストークン**:スクリプト、社内ツール、サーバーサイド連携に最適です。[アクセストークン](/ja/api-doc/token)をご覧ください。
+- **OAuthアクセストークン**:エンドユーザーがアクセスを許可するマルチテナント連携に最適です。[OAuthアプリ](/ja/api-doc/oauth)をご覧ください。
## ID(spaceId / baseId / tableId / viewId / fieldId / recordId)
@@ -35,7 +35,7 @@ curl -H 'Authorization: Bearer __token__' \
パーソナルアクセストークンとOAuthトークンには、いずれも権限スコープが設定されています。403エラーが発生した場合は、通常、トークンに必要なスコープがありません。
- [エラーコード](/ja/api-doc/error-code)をご覧ください
-- OAuthスコープのリファレンス: [OAuthアプリ](/ja/api-doc/oauth#available-scopes)
+- OAuthスコープのリファレンス:[OAuthアプリ](/ja/api-doc/oauth#available-scopes)
## ページネーション(take / skip)
@@ -55,9 +55,9 @@ curl -H 'Authorization: Bearer __token__' \
## 次に読むページ
-- **データを取得したい場合**: [レコードを取得](/ja/api-doc/record/get)
-- **レコードを作成、更新、削除する場合**: [レコードを作成](/ja/api-doc/record/create)、[レコードを更新](/ja/api-doc/record/update)、[レコードを削除](/ja/api-doc/record/delete)
-- **添付ファイルをアップロードする場合**: [添付ファイルをアップロード](/ja/api-doc/record/upload-attachment)
-- **エンドポイントの完全な一覧**: 左側のナビゲーションにある**APIリファレンス**を使用してください
+- **データを取得したい場合**:[レコードを取得](/ja/api-doc/record/get)
+- **レコードを作成、更新、削除する場合**:[レコードを作成](/ja/api-doc/record/create)、[レコードを更新](/ja/api-doc/record/update)、[レコードを削除](/ja/api-doc/record/delete)
+- **添付ファイルをアップロードする場合**:[添付ファイルをアップロード](/ja/api-doc/record/upload-attachment)
+- **エンドポイントの完全な一覧**:左側のナビゲーションにある**APIリファレンス**を使用してください
diff --git a/ja/api-doc/record/create.mdx b/ja/api-doc/record/create.mdx
index 09a8fee7..184eaacb 100644
--- a/ja/api-doc/record/create.mdx
+++ b/ja/api-doc/record/create.mdx
@@ -16,9 +16,9 @@ POST /api/table/\{tableId\}/record
#### リクエスト本文
* **records(必須)**
- * 説明: 作成するレコードの配列
- * 型: 配列
- * 例:
+ * 説明:作成するレコードの配列
+ * 型:配列
+ * 例:
```json
[
{
@@ -37,19 +37,19 @@ POST /api/table/\{tableId\}/record
}
]
```
- * 注: 各レコードは、`fields`オブジェクトを含む項目です。`fields`オブジェクトには、フィールド名と対応する値が含まれます。フィールド型ごとに値の構造が異なります。詳しくは[レコードフィールドの値の型](/ja/api-doc/record/interface)をご覧ください。
- * デフォルト値: `fields`から省略したフィールドには、テーブルにデフォルト値が設定されている場合、その値が使用されます。必須フィールドにデフォルト値がない場合、または必須フィールドに明示的に`null`を渡した場合、リクエストは失敗します。
+ * 注:各レコードは、`fields`オブジェクトを含む項目です。`fields`オブジェクトには、フィールド名と対応する値が含まれます。フィールド型ごとに値の構造が異なります。詳しくは[レコードフィールドの値の型](/ja/api-doc/record/interface)をご覧ください。
+ * デフォルト値:`fields`から省略したフィールドには、テーブルにデフォルト値が設定されている場合、その値が使用されます。必須フィールドにデフォルト値がない場合、または必須フィールドに明示的に`null`を渡した場合、リクエストは失敗します。
* **fieldKeyType(任意)**
- * 説明: フィールドキーの種類を指定します
- * 型: 文字列
- * 指定可能な値:
+ * 説明:フィールドキーの種類を指定します
+ * 型:文字列
+ * 指定可能な値:
* "name": フィールド名をキーとして使用します
* "id": フィールドIDをキーとして使用します
* "dbFieldName": フィールドのdbFieldNameをキーとして使用します
- * 例: `"name"`、`"id"`、または`"dbFieldName"`
- * 注: 指定しない場合、デフォルトではフィールド名がキーとして使用されます。
- * 使用方法:
- * "name"に設定した場合:
+ * 例:`"name"`、`"id"`、または`"dbFieldName"`
+ * 注:指定しない場合、デフォルトではフィールド名がキーとして使用されます。
+ * 使用方法:
+ * "name"に設定した場合:
```json
{
"fields": {
@@ -58,7 +58,7 @@ POST /api/table/\{tableId\}/record
}
}
```
- * "id"に設定した場合:
+ * "id"に設定した場合:
```json
{
"fields": {
@@ -68,50 +68,50 @@ POST /api/table/\{tableId\}/record
}
```
* **typecast(任意)**
- * 説明: フィールド値の型を自動変換するかどうかを指定します。デフォルトでは厳密な検証が適用され、入力値が現在のフィールドのデータ型と一致している必要があります。有効にすると、システムが自動変換を試みます。
- * 型: ブール値
- * 指定可能な値: trueまたはfalse
- * 例: `true`
- * 注: trueに設定すると、入力値を正しいフィールド値の型へ変換しようとします。
- * 使用例:
- * リンクフィールド: 主キーテキストをリンクに直接使用できます
+ * 説明:フィールド値の型を自動変換するかどうかを指定します。デフォルトでは厳密な検証が適用され、入力値が現在のフィールドのデータ型と一致している必要があります。有効にすると、システムが自動変換を試みます。
+ * 型:ブール値
+ * 指定可能な値:trueまたはfalse
+ * 例:`true`
+ * 注:trueに設定すると、入力値を正しいフィールド値の型へ変換しようとします。
+ * 使用例:
+ * リンクフィールド:主キーテキストをリンクに直接使用できます
```json
{
"User table": "John Smith"
}
```
- * 日付フィールド: 標準形式以外の日付文字列を使用できます
+ * 日付フィールド:標準形式以外の日付文字列を使用できます
```json
{
"Date": "2023-05-15"
}
```
- * ユーザーフィールド: ユーザー名を直接使用できます
+ * ユーザーフィールド:ユーザー名を直接使用できます
```json
{
"Assigned To": "John Doe"
}
```
* **order(任意)**
- * 説明: 特定のビュー内で新しいレコードを配置する位置を指定します
- * 型: オブジェクト
- * プロパティ:
+ * 説明:特定のビュー内で新しいレコードを配置する位置を指定します
+ * 型:オブジェクト
+ * プロパティ:
* viewId
- * 説明: ビューID([取得方法](/ja/api-doc/get-id#viewid))
- * 型: 文字列
- * 例: `"viwABCDEFGHIJKLMN"`
+ * 説明:ビューID([取得方法](/ja/api-doc/get-id#viewid))
+ * 型:文字列
+ * 例:`"viwABCDEFGHIJKLMN"`
* anchorId
- * 説明: 基準となるレコードID([取得方法](/ja/api-doc/get-id#recordid))
- * 型: 文字列
- * 例: `"rec123456789ABCDE"`
+ * 説明:基準となるレコードID([取得方法](/ja/api-doc/get-id#recordid))
+ * 型:文字列
+ * 例:`"rec123456789ABCDE"`
* position
- * 説明: 基準レコードに対する位置
- * 型: 文字列
- * 指定可能な値:
+ * 説明:基準レコードに対する位置
+ * 型:文字列
+ * 指定可能な値:
* "before": 基準レコードの前
* "after": 基準レコードの後
- * 例: `"after"`
- * 完全な例:
+ * 例:`"after"`
+ * 完全な例:
```json
{
"viewId": "viwABCDEFGHIJKLMN",
@@ -119,14 +119,14 @@ POST /api/table/\{tableId\}/record
"position": "after"
}
```
- * 注: orderを使用すると、特定のビュー内で新しいレコードの位置を正確に制御できます。
+ * 注:orderを使用すると、特定のビュー内で新しいレコードの位置を正確に制御できます。
### レスポンス
#### 成功レスポンス
-* ステータスコード: 201 Created
-* レスポンス本文: 作成されたレコードデータを返します。
+* ステータスコード:201 Created
+* レスポンス本文:作成されたレコードデータを返します。
**レスポンス本文の例**
@@ -151,8 +151,8 @@ POST /api/table/\{tableId\}/record
### エラーレスポンス
-* ステータスコード: 400 Bad Request: リクエスト本文の形式が正しくないか、必須フィールドがありません。
-* ステータスコード: 404 Not Found: 指定したtableIdが存在しません。
+* ステータスコード:400 Bad Request: リクエスト本文の形式が正しくないか、必須フィールドがありません。
+* ステータスコード:404 Not Found: 指定したtableIdが存在しません。
### コード例
diff --git a/ja/api-doc/record/delete.mdx b/ja/api-doc/record/delete.mdx
index ccdbf5b8..c7aab14f 100644
--- a/ja/api-doc/record/delete.mdx
+++ b/ja/api-doc/record/delete.mdx
@@ -15,22 +15,22 @@ DELETE /api/table/\{tableId\}/record
**クエリパラメーター**
* **recordIds(必須)**([取得方法](/ja/api-doc/get-id#recordid))
- * 説明: 削除するレコードIDの配列
- * 型: 配列
- * 例: `["rec123456", "rec789012"]`
- * 注: 各要素は、削除するレコードのIDを表す文字列です。
+ * 説明:削除するレコードIDの配列
+ * 型:配列
+ * 例:`["rec123456", "rec789012"]`
+ * 注:各要素は、削除するレコードのIDを表す文字列です。
#### レスポンス
**成功レスポンス**
-* ステータスコード: 200 OK
-* レスポンス本文: コンテンツなし
+* ステータスコード:200 OK
+* レスポンス本文:コンテンツなし
#### エラーレスポンス
-* ステータスコード: 400 Bad Request: リクエストパラメーターの形式が正しくないか、必須パラメーターがありません。
-* ステータスコード: 404 Not Found: 指定したtableIdが存在しないか、一部のレコードIDが存在しません。
+* ステータスコード:400 Bad Request: リクエストパラメーターの形式が正しくないか、必須パラメーターがありません。
+* ステータスコード:404 Not Found: 指定したtableIdが存在しないか、一部のレコードIDが存在しません。
#### コード例
diff --git a/ja/api-doc/record/interface.mdx b/ja/api-doc/record/interface.mdx
index fd06bd06..ad773860 100644
--- a/ja/api-doc/record/interface.mdx
+++ b/ja/api-doc/record/interface.mdx
@@ -18,12 +18,12 @@ title: "レコードフィールドインターフェース"
### 1. 数値フィールド
* type: number
-* 書き込み型: `number`
-* 戻り値の型:
+* 書き込み型:`number`
+* 戻り値の型:
* `isMultipleCellValue: false`: `number`
* `isMultipleCellValue: true`: `number[]`
-例:
+例:
```js
// 書き込み値
42
@@ -37,12 +37,12 @@ title: "レコードフィールドインターフェース"
### 2. 一行テキストフィールド
* type: singleLineText
-* 書き込み型: `string`
-* 戻り値の型:
+* 書き込み型:`string`
+* 戻り値の型:
* `isMultipleCellValue: false`: `string`
* `isMultipleCellValue: true`: `string[]`
-例:
+例:
```js
// 書き込み値
"こんにちは、Teable!"
@@ -56,12 +56,12 @@ title: "レコードフィールドインターフェース"
### 3. 長文テキストフィールド
* type: longText
-* 書き込み型: `string`
-* 戻り値の型:
+* 書き込み型:`string`
+* 戻り値の型:
* `isMultipleCellValue: false`: `string`
* `isMultipleCellValue: true`: `string[]`
-例:
+例:
```js
// 書き込み値
"これは複数の段落を含められる長いテキストフィールドです..."
@@ -75,12 +75,12 @@ title: "レコードフィールドインターフェース"
### 4. 単一選択フィールド
* type: singleSelect
-* 書き込み型: `string`(選択肢の値)
-* 戻り値の型:
+* 書き込み型:`string`(選択肢の値)
+* 戻り値の型:
* `isMultipleCellValue: false`: `string`
* `isMultipleCellValue: true`: `string[]`
-例:
+例:
```js
// 書き込み値
"選択肢A"
@@ -94,10 +94,10 @@ title: "レコードフィールドインターフェース"
### 5. 複数選択フィールド
* type: multipleSelect
-* 書き込み型: `string[]`(選択肢の値の配列)
-* 戻り値の型: `string[]`
+* 書き込み型:`string[]`(選択肢の値の配列)
+* 戻り値の型:`string[]`
-例:
+例:
```js
// 書き込み値
["赤", "青", "緑"]
@@ -108,14 +108,14 @@ title: "レコードフィールドインターフェース"
### 6. リンクフィールド
* type: link
-* 書き込み型:
+* 書き込み型:
* `isMultipleCellValue: false`: `{ id: string }`
* `isMultipleCellValue: true`: `{ id: string }[]`
-* 戻り値の型:
+* 戻り値の型:
* `isMultipleCellValue: false`: `{ id: string, title?: string }`
* `isMultipleCellValue: true`: `{ id: string, title?: string }[]`
-例:
+例:
```js
// 書き込み値 (isMultipleCellValue: false)
{ id: "rec123456" }
@@ -135,10 +135,10 @@ title: "レコードフィールドインターフェース"
### 7. 数式フィールド
* type: formula
-* 書き込み型: 直接書き込みできません
-* 戻り値の型: 数式の結果によって異なり、`string | number | boolean`またはそれぞれの配列形式になります
+* 書き込み型:直接書き込みできません
+* 戻り値の型:数式の結果によって異なり、`string | number | boolean`またはそれぞれの配列形式になります
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
42 // または "結果" または true
@@ -150,7 +150,7 @@ title: "レコードフィールドインターフェース"
### 8. 添付ファイルフィールド
添付ファイルフィールドへ添付ファイルをアップロードするには、専用APIを使用します。詳しくは、[添付ファイルをアップロード](/ja/api-doc/record/upload-attachment)セクションをご覧ください。
* type: attachment
-* 書き込み型:
+* 書き込み型:
```ts
{
id: string;
@@ -165,7 +165,7 @@ title: "レコードフィールドインターフェース"
}[]
```
-* 戻り値の型:
+* 戻り値の型:
```ts
{
id: string;
@@ -180,7 +180,7 @@ title: "レコードフィールドインターフェース"
}[]
```
-例:
+例:
```js
// 書き込み値
[
@@ -219,13 +219,13 @@ title: "レコードフィールドインターフェース"
### 9. 日付フィールド
* type: date
-* 書き込み型: `string`(ISO 8601形式)
-* 戻り値の型:
+* 書き込み型:`string`(ISO 8601形式)
+* 戻り値の型:
* `isMultipleCellValue: false`: `string`(ISO 8601形式)
* `isMultipleCellValue: true`: `string[]`(ISO 8601形式)
ISO 8601形式の時刻は、`new Date().toISOString()`で取得できます
-例:
+例:
```js
// 書き込み値
"2024-09-02T02:51:03.875Z"
@@ -239,12 +239,12 @@ ISO 8601形式の時刻は、`new Date().toISOString()`で取得できます
### 10. 作成日時フィールド
* type: createdTime
-* 書き込み型: 直接書き込みできません
-* 戻り値の型:
+* 書き込み型:直接書き込みできません
+* 戻り値の型:
* `isMultipleCellValue: false`: `string`(ISO 8601形式)
* `isMultipleCellValue: true`: `string[]`(ISO 8601形式)
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
"2024-09-02T02:51:03.875Z"
@@ -255,12 +255,12 @@ ISO 8601形式の時刻は、`new Date().toISOString()`で取得できます
### 11. 最終更新日時フィールド
* type: lastModifiedTime
-* 書き込み型: 直接書き込みできません
-* 戻り値の型:
+* 書き込み型:直接書き込みできません
+* 戻り値の型:
* `isMultipleCellValue: false`: `string`(ISO 8601形式)
* `isMultipleCellValue: true`: `string[]`(ISO 8601形式)
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
"2023-04-15T10:30:00Z"
@@ -271,12 +271,12 @@ ISO 8601形式の時刻は、`new Date().toISOString()`で取得できます
### 12. チェックボックスフィールド
* type: checkbox
-* 書き込み型: `boolean`
-* 戻り値の型:
+* 書き込み型:`boolean`
+* 戻り値の型:
* `isMultipleCellValue: false`: `boolean`
* `isMultipleCellValue: true`: `boolean[]`
-例:
+例:
```js
// 書き込み値
true
@@ -290,10 +290,10 @@ true
### 13. ロールアップフィールド
* type: rollup
-* 書き込み型: 直接書き込みできません
-* 戻り値の型: ロールアップの設定によって異なり、`number | string`またはそれぞれの配列形式になります
+* 書き込み型:直接書き込みできません
+* 戻り値の型:ロールアップの設定によって異なり、`number | string`またはそれぞれの配列形式になります
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
42 // または "集計結果"
@@ -304,12 +304,12 @@ true
### 14. 評価フィールド
* type: rating
-* 書き込み型: `number`
-* 戻り値の型:
+* 書き込み型:`number`
+* 戻り値の型:
* `isMultipleCellValue: false`: `number`
* `isMultipleCellValue: true`: `number[]`
-例:
+例:
```js
// 書き込み値
4
@@ -323,12 +323,12 @@ true
### 15. 自動採番フィールド
* type: autoNumber
-* 書き込み型: 直接書き込みできません
-* 戻り値の型:
+* 書き込み型:直接書き込みできません
+* 戻り値の型:
* `isMultipleCellValue: false`: `number`
* `isMultipleCellValue: true`: `number[]`
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
42
@@ -340,14 +340,14 @@ true
### 16. ユーザーフィールド
* type: user
-* 書き込み型:
+* 書き込み型:
* `isMultipleCellValue: false`: `{ id: string, title: string }`
* `isMultipleCellValue: true`: `{ id: string, title: string }[]`
-* 戻り値の型:
+* 戻り値の型:
* `isMultipleCellValue: false`: `{ id: string, title: string, email?: string, avatar?: string }`
* `isMultipleCellValue: true`: `{ id: string, title: string, email?: string, avatar?: string }[]`
-例:
+例:
```js
// 書き込み値 (isMultipleCellValue: false)
{ id: "user123", title: "John Doe" }
@@ -384,11 +384,11 @@ true
```
### 17. 作成者フィールド
-* 書き込み型: 直接書き込みできません
-* 戻り値の型:
+* 書き込み型:直接書き込みできません
+* 戻り値の型:
* `isMultipleCellValue: false`: `{ id: string, title: string, email?: string, avatar?: string }`
* `isMultipleCellValue: true`: `{ id: string, title: string, email?: string, avatar?: string }[]`
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
{
@@ -416,12 +416,12 @@ true
```
### 18. 最終更新者フィールド
-* 書き込み型: 直接書き込みできません
-* 戻り値の型:
+* 書き込み型:直接書き込みできません
+* 戻り値の型:
* `isMultipleCellValue: false`: `{ id: string, title: string, email?: string, avatar?: string }`
* `isMultipleCellValue: true`: `{ id: string, title: string, email?: string, avatar?: string }[]`
-例:
+例:
```js
// 戻り値 (isMultipleCellValue: false)
{
diff --git a/ja/api-doc/record/update.mdx b/ja/api-doc/record/update.mdx
index d758ecf2..3a0af1c6 100644
--- a/ja/api-doc/record/update.mdx
+++ b/ja/api-doc/record/update.mdx
@@ -17,9 +17,9 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
#### リクエスト本文
* **record(必須)**
- * 説明: 更新するレコードデータ
- * 型: オブジェクト
- * 例:
+ * 説明:更新するレコードデータ
+ * 型:オブジェクト
+ * 例:
```json
{
"fields": {
@@ -29,21 +29,21 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
}
}
```
- * 注: `fields`オブジェクトには、フィールド名と対応する新しい値が含まれます。フィールド型ごとに値の構造が異なります。詳しくは[レコードフィールドの値の型](/ja/api-doc/record/interface)をご覧ください。
+ * 注:`fields`オブジェクトには、フィールド名と対応する新しい値が含まれます。フィールド型ごとに値の構造が異なります。詳しくは[レコードフィールドの値の型](/ja/api-doc/record/interface)をご覧ください。
フィールドの値を消去するには、明示的に`null`を渡します。フィールド名を含めなかった場合、そのフィールドは更新されません。
* **fieldKeyType(任意)**
- * 説明: フィールドキーの種類を指定します
- * 型: 文字列
- * 指定可能な値:
+ * 説明:フィールドキーの種類を指定します
+ * 型:文字列
+ * 指定可能な値:
* "name": フィールド名をキーとして使用します
* "id": フィールドIDをキーとして使用します
* "dbFieldName": フィールドのdbFieldNameをキーとして使用します
- * 例: `"name"`、`"id"`、または`"dbFieldName"`
- * 注: 指定しない場合、デフォルトではフィールド名がキーとして使用されます。
- * 使用方法:
- * "name"に設定した場合:
+ * 例:`"name"`、`"id"`、または`"dbFieldName"`
+ * 注:指定しない場合、デフォルトではフィールド名がキーとして使用されます。
+ * 使用方法:
+ * "name"に設定した場合:
```json
{
"fields": {
@@ -52,7 +52,7 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
}
}
```
- * "id"に設定した場合:
+ * "id"に設定した場合:
```json
{
"fields": {
@@ -62,25 +62,25 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
}
```
* **typecast(任意)**
- * 説明: フィールド値の型を自動変換するかどうかを指定します。デフォルトでは厳密な検証が適用され、入力値が現在のフィールドのデータ型と一致している必要があります。有効にすると、システムが自動変換を試みます。
- * 型: ブール値
- * 指定可能な値: trueまたはfalse
- * 例: `true`
- * 注: trueに設定すると、入力値を正しいフィールド値の型へ変換しようとします。
- * 使用例:
- * リンクフィールド: 主キーテキストをリンクに直接使用できます
+ * 説明:フィールド値の型を自動変換するかどうかを指定します。デフォルトでは厳密な検証が適用され、入力値が現在のフィールドのデータ型と一致している必要があります。有効にすると、システムが自動変換を試みます。
+ * 型:ブール値
+ * 指定可能な値:trueまたはfalse
+ * 例:`true`
+ * 注:trueに設定すると、入力値を正しいフィールド値の型へ変換しようとします。
+ * 使用例:
+ * リンクフィールド:主キーテキストをリンクに直接使用できます
```json
{
"User table": "John Smith"
}
```
- * 日付フィールド: 標準形式以外の日付文字列を使用できます
+ * 日付フィールド:標準形式以外の日付文字列を使用できます
```json
{
"Date": "2023-05-15"
}
```
- * ユーザーフィールド: ユーザー名を直接使用できます
+ * ユーザーフィールド:ユーザー名を直接使用できます
```json
{
"Assigned To": "John Doe"
@@ -90,13 +90,13 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
添付ファイルフィールドに新しいファイルをアップロードする方法については、[添付ファイルをアップロード](/ja/api-doc/record/upload-attachment)セクションをご覧ください。
* **order(任意)**
- * 説明: レコードの更新後、指定したビュー内の指定位置へ移動します。
- * 型: オブジェクト
- * プロパティ:
+ * 説明:レコードの更新後、指定したビュー内の指定位置へ移動します。
+ * 型:オブジェクト
+ * プロパティ:
* viewId: ビューID
* anchorId: 基準となるレコードID
- * position: 基準レコードに対する位置。指定可能な値: `"before"`または`"after"`
- * 例:
+ * position: 基準レコードに対する位置。指定可能な値:`"before"`または`"after"`
+ * 例:
```json
{
"viewId": "viwABCDEFGHIJKLMN",
@@ -109,8 +109,8 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
#### 成功レスポンス
-* ステータスコード: 200 OK
-* レスポンス本文: 更新されたレコードデータを返します。
+* ステータスコード:200 OK
+* レスポンス本文:更新されたレコードデータを返します。
**レスポンス本文の例**
```json
@@ -126,8 +126,8 @@ PATCH /api/table/\{tableId\}/record/\{recordId\}
#### エラーレスポンス
-* ステータスコード: 400 Bad Request: リクエスト本文の形式が正しくないか、必須フィールドがありません。
-* ステータスコード: 404 Not Found: 指定したtableIdまたはrecordIdが存在しません。
+* ステータスコード:400 Bad Request: リクエスト本文の形式が正しくないか、必須フィールドがありません。
+* ステータスコード:404 Not Found: 指定したtableIdまたはrecordIdが存在しません。
#### コード例
diff --git a/ja/api-doc/record/upload-attachment.mdx b/ja/api-doc/record/upload-attachment.mdx
index 71287daf..9adaa80f 100644
--- a/ja/api-doc/record/upload-attachment.mdx
+++ b/ja/api-doc/record/upload-attachment.mdx
@@ -25,25 +25,25 @@ API経由でアップロードする添付ファイルの上限は、クラウ
#### リクエスト本文
-型: formData
+型:formData
-パラメーター:
+パラメーター:
* **file(任意)**
- * 説明: 更新するレコードデータ
- * 型: BufferまたはReadStream
+ * 説明:更新するレコードデータ
+ * 型:BufferまたはReadStream
* **fileUrl(任意)**
- * 説明: アップロード元のURL
- * 型: 文字列
- * 例: `https://example.com/image.jpg`
- * 注: fileとfileUrlのいずれか一方だけを指定できます。両方を指定した場合は、fileが優先されます。
+ * 説明:アップロード元のURL
+ * 型:文字列
+ * 例:`https://example.com/image.jpg`
+ * 注:fileとfileUrlのいずれか一方だけを指定できます。両方を指定した場合は、fileが優先されます。
### レスポンス
#### 成功レスポンス
-* ステータスコード: 201 Created
-* レスポンス本文: 更新されたレコードデータを返します。
+* ステータスコード:201 Created
+* レスポンス本文:更新されたレコードデータを返します。
**レスポンス本文の例**
@@ -70,8 +70,8 @@ API経由でアップロードする添付ファイルの上限は、クラウ
#### エラーレスポンス
-* ステータスコード: 400 Bad Request: リクエスト本文の形式が正しくないか、必須フィールドがありません。
-* ステータスコード: 404 Not Found: 指定したtableIdまたはrecordIdが存在しません。
+* ステータスコード:400 Bad Request: リクエスト本文の形式が正しくないか、必須フィールドがありません。
+* ステータスコード:404 Not Found: 指定したtableIdまたはrecordIdが存在しません。
### コード例
diff --git a/ja/api-doc/sql-query.mdx b/ja/api-doc/sql-query.mdx
index f4995b9d..8d6bbf4c 100644
--- a/ja/api-doc/sql-query.mdx
+++ b/ja/api-doc/sql-query.mdx
@@ -4,15 +4,15 @@ noindex: true
---
-**セルフホスト限定**: すべてのバージョンで接続数の制限なく利用できます。
+**セルフホスト限定**:すべてのバージョンで接続数の制限なく利用できます。
Teableでは、外部ツールから基盤となるPostgreSQLデータベースに接続し、読み取り専用クエリを実行できます。これにより、BIツール(PowerBI、Metabase、Superset)、データベースクライアント(DataGrip、Navicat、TablePlus)、ローコードプラットフォーム(Appsmith、Budibase)、アプリケーションコードと連携できます。
### データベース接続を作成する
-1. **テーブルを開く**: まず、接続するベース内の任意のテーブルを開きます。
-2. **設計ページを開く**: 右上の⚙️アイコンをクリックして、ベース設計ページを開きます。
+1. **テーブルを開く**:まず、接続するベース内の任意のテーブルを開きます。
+2. **設計ページを開く**:右上の⚙️アイコンをクリックして、ベース設計ページを開きます。
-3. **データベース接続パネルを見つける**: 設計ページで「データベース接続」パネルを見つけます。
-4. **接続を作成する**: 作成をクリックすると、ユーザー名、パスワード、ホストアドレスを含む読み取り専用のPostgreSQL接続が自動的に生成されます。
+3. **データベース接続パネルを見つける**:設計ページで「データベース接続」パネルを見つけます。
+4. **接続を作成する**:作成をクリックすると、ユーザー名、パスワード、ホストアドレスを含む読み取り専用のPostgreSQL接続が自動的に生成されます。
-**ヒント:** 必要に応じて、設計画面で物理テーブル名を変更できます。
+**ヒント:** 必要に応じて、設計画面で物理テーブル名を変更できます。
### フィールド名を確認する
@@ -98,7 +98,7 @@ Teable画面上のテーブル名は、物理データベースのテーブル
className="docs-screenshot"
/>
-**ヒント:** Teableでフィールド名を変更しても、自動的には同期されません。PostgreSQL内の実際の列名を変更するには、`dbFieldName`を明示的に変更してください。
+**ヒント:** Teableでフィールド名を変更しても、自動的には同期されません。PostgreSQL内の実際の列名を変更するには、`dbFieldName`を明示的に変更してください。
### システムフィールド
diff --git a/ja/basic/admin-panel/ai-generation-queue.mdx b/ja/basic/admin-panel/ai-generation-queue.mdx
index 06f111b4..82336b16 100644
--- a/ja/basic/admin-panel/ai-generation-queue.mdx
+++ b/ja/basic/admin-panel/ai-generation-queue.mdx
@@ -5,7 +5,7 @@ description: "現在のセルフホストインスタンスにおけるAIフィ
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → AI生成キュー
+パス:システム管理 → AI生成キュー
**AI生成キュー**では、現在のセルフホストインスタンスでAIフィールドの生成が正常に進んでいるかを確認できます。
@@ -17,8 +17,8 @@ description: "現在のセルフホストインスタンスにおけるAIフィ
| ステータス | 意味 |
| --- | --- |
-| **正常** | AI生成は正常に実行されています。 |
-| **低下** | 停止した処理、長時間滞留しているバックログ、直近の高い失敗率、処理能力の不一致、孤立した処理、または無効になっているWatchdogがTeableによって検出されました。 |
+| **正常** | AI生成は正常に実行されています。|
+| **低下** | 停止した処理、長時間滞留しているバックログ、直近の高い失敗率、処理能力の不一致、孤立した処理、または無効になっているWatchdogがTeableによって検出されました。|
概要カードには次の情報が表示されます。
diff --git a/ja/basic/admin-panel/ai-setting.mdx b/ja/basic/admin-panel/ai-setting.mdx
index c1ea24f3..2e743930 100644
--- a/ja/basic/admin-panel/ai-setting.mdx
+++ b/ja/basic/admin-panel/ai-setting.mdx
@@ -6,7 +6,7 @@ description: "セルフホストインスタンスのAIチャット、AIフィ
{/* mintlify-resync: 2026-05-14 */}
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → AI設定
+パス:システム管理 → AI設定
**AI設定**ページでは、**AIチャット**、**AIフィールド**、**AIオートメーション**、**App Builder**を設定します。右側の**保留中の設定**パネルには、まだ不足している必須項目が表示されます。
@@ -52,8 +52,8 @@ AI設定ページを開く前に、次の項目を準備してください。
| 設定 | 効果 |
|------|------|
-| **コンテキスト** | 任意。コンテキスト圧縮に使用する入力トークンの最大数を設定します。 |
-| **最大出力** | 任意。モデルが1回のレスポンスで生成できるトークンの最大数を設定します。 |
+| **コンテキスト** | 任意。コンテキスト圧縮に使用する入力トークンの最大数を設定します。|
+| **最大出力** | 任意。モデルが1回のレスポンスで生成できるトークンの最大数を設定します。|
### 推奨モデルを設定する
@@ -73,8 +73,8 @@ AI設定ページを開く前に、次の項目を準備してください。
| デプロイエンジン | 設定要件 |
|------|------|
-| **Vercel** | Vercelアクセストークンを入力して**接続をテスト**をクリックし、**公開アクセスをテスト**を使用して、VercelからTeableインスタンスとオブジェクトストレージへアクセスできることを確認します。 |
-| **Teable Infra** | 設定済みのTeable Infraコンテナランタイムを使用します。ここでは追加の認証情報や公開アクセスのテストは必要ありません。 |
+| **Vercel** | Vercelアクセストークンを入力して**接続をテスト**をクリックし、**公開アクセスをテスト**を使用して、VercelからTeableインスタンスとオブジェクトストレージへアクセスできることを確認します。|
+| **Teable Infra** | 設定済みのTeable Infraコンテナランタイムを使用します。ここでは追加の認証情報や公開アクセスのテストは必要ありません。|
必要に応じて、次の任意のApp Builder設定を追加できます。
@@ -92,7 +92,7 @@ AI設定ページを開く前に、次の項目を準備してください。
**AI APIキーをアプリへ自動注入**はデフォルトでオンになっているため、アプリからプラットフォームのAIモデルを呼び出せます。オフにすると、アプリからモデルへアクセスできなくなります。
-### 任意: 音声入力を設定する
+### 任意:音声入力を設定する
AIチャットで音声入力を使用するには、この機能を有効にして**OpenAI APIキー**を入力します。カスタム文字起こしサービスを使用する場合にのみ、**文字起こしエンドポイント**を設定してください。録音時間と1分あたりのリクエスト数を制限することもできます。
diff --git a/ja/basic/admin-panel/announcements.mdx b/ja/basic/admin-panel/announcements.mdx
index 862057ed..3b359a2a 100644
--- a/ja/basic/admin-panel/announcements.mdx
+++ b/ja/basic/admin-panel/announcements.mdx
@@ -5,7 +5,7 @@ description: "アプリ内のお知らせを全員、選択したスペース、
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → お知らせ
+パス:システム管理 → お知らせ
**お知らせ**を使用すると、計画メンテナンス、障害とその復旧、ポリシー変更、ユーザーに知ってもらいたい新機能などのメッセージを、メールを送信せずにサインイン中のユーザーへ表示できます。各お知らせは指定した期間内に表示され、インスタンス全体または特定のグループを対象にできます。
@@ -15,18 +15,18 @@ description: "アプリ内のお知らせを全員、選択したスペース、
| 設定 | 制御する内容 |
| --- | --- |
-| **形式** | お知らせの表示場所: アプリ上部の**バナー**、一時的な通知として表示される**トースト**、操作を中断するダイアログ形式の**モーダル**、またはスペースとベースのサイドバーに表示される**サイドバーカード**。 |
-| **レベル** | ユーザーに示す性質: **情報**、**メンテナンス**、**重大**、または**解決済み**。 |
-| タイトルと**本文** | お知らせのテキスト。 |
-| **開始日時** / **終了日時** | お知らせが配信される期間。終了日時は開始日時より後である必要があります。 |
-| **リンクテキスト** / **リンクURL** | 任意のリンク先。サイドバーカード自体がリンクのため、常にURLフィールドが表示されます。その他の形式では、本文で`{link}`プレースホルダーを使用した場合に表示されます。 |
-| **対象者** | **全員**、**特定のスペース**、または**特定のユーザー**。 |
+| **形式** | お知らせの表示場所:アプリ上部の**バナー**、一時的な通知として表示される**トースト**、操作を中断するダイアログ形式の**モーダル**、またはスペースとベースのサイドバーに表示される**サイドバーカード**。|
+| **レベル** | ユーザーに示す性質:**情報**、**メンテナンス**、**重大**、または**解決済み**。|
+| タイトルと**本文** | お知らせのテキスト。|
+| **開始日時** / **終了日時** | お知らせが配信される期間。終了日時は開始日時より後である必要があります。|
+| **リンクテキスト** / **リンクURL** | 任意のリンク先。サイドバーカード自体がリンクのため、常にURLフィールドが表示されます。その他の形式では、本文で`{link}`プレースホルダーを使用した場合に表示されます。|
+| **対象者** | **全員**、**特定のスペース**、または**特定のユーザー**。|
メッセージの重要度に適した形式を選択してください。バナーとサイドバーカードはユーザーの作業と並んで表示されますが、モーダルは作業を中断します。ユーザーはお知らせを自分で閉じることができます。複数のお知らせが同時に有効な場合、バナーは**他N件のお知らせ**の切り替え項目にまとめられます。
### 特定のスペースまたはユーザーを対象にする
-**特定のスペース**または**特定のユーザー**の場合、対象者ボックスに識別子(スペースIDまたは名前、あるいはユーザーID、名前、メールアドレスをカンマ区切りで指定)を貼り付け、**照合**をクリックします。一致した項目はチップになり、Teableで解決できなかった項目は**不一致:**の下のボックスに残るため、修正して再試行できます。
+**特定のスペース**または**特定のユーザー**の場合、対象者ボックスに識別子(スペースIDまたは名前、あるいはユーザーID、名前、メールアドレスをカンマ区切りで指定)を貼り付け、**照合**をクリックします。一致した項目はチップになり、Teableで解決できなかった項目は**不一致:**の下のボックスに残るため、修正して再試行できます。
スペースのメンバー構成はお知らせの配信時に評価されるため、後から追加されたコラボレーターにも、スペースを対象としたお知らせが届きます。
@@ -54,9 +54,9 @@ description: "アプリ内のお知らせを全員、選択したスペース、
| ステータス | 意味 |
| --- | --- |
-| **予約済み** | 開始日時にまだ達していません。 |
-| **有効** | 現在配信中です。 |
-| **期限切れ** | 終了日時を過ぎています。 |
-| **取り下げ済み** | 管理者によって予定より早く停止されました。 |
+| **予約済み** | 開始日時にまだ達していません。|
+| **有効** | 現在配信中です。|
+| **期限切れ** | 終了日時を過ぎています。|
+| **取り下げ済み** | 管理者によって予定より早く停止されました。|
有効なお知らせの**取り下げ**をクリックすると、配信がすぐに停止します。すでに期限切れのお知らせは取り下げることができず、そのレコードは変更されずに残ります。
diff --git a/ja/basic/admin-panel/audit-log.mdx b/ja/basic/admin-panel/audit-log.mdx
index 726b1d1d..e9b2bab5 100644
--- a/ja/basic/admin-panel/audit-log.mdx
+++ b/ja/basic/admin-panel/audit-log.mdx
@@ -5,7 +5,7 @@ description: "システム管理でインスタンス全体のアクティビテ
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → 監査ログ
+パス:システム管理 → 監査ログ
**監査ログ**では、管理者がインスタンス全体のアクティビティを確認し、誰が、いつ、どの領域に対して操作を行ったかを追跡できます。
@@ -21,17 +21,17 @@ description: "システム管理でインスタンス全体のアクティビテ
| 操作 | 実行内容 |
| --- | --- |
-| **ユーザーを無効化** | アカウントがこのインスタンスへアクセスできないようにします。自分のアカウント、インスタンス管理者、削除済みユーザーには表示されません。 |
-| **ユーザーを再有効化** | 無効化されたアカウントのアクセスを復元します。ユーザーは再度サインインしたり認証情報を交換したりすることなく、すぐに作業を再開できます。 |
+| **ユーザーを無効化** | アカウントがこのインスタンスへアクセスできないようにします。自分のアカウント、インスタンス管理者、削除済みユーザーには表示されません。|
+| **ユーザーを再有効化** | 無効化されたアカウントのアクセスを復元します。ユーザーは再度サインインしたり認証情報を交換したりすることなく、すぐに作業を再開できます。|
## ログを絞り込む
ページ上部のフィルターを使用して、ログ一覧を絞り込みます。
-- **操作者を選択**: 特定のユーザーが実行した操作を表示します。
-- **スペースを選択**: 特定のスペース内のアクティビティを表示します。
-- **ベースを選択**: 特定のベースに関するアクティビティを表示します。
-- **アクションを選択**: レコード、フィールド、ビュー、テーブル、ベース、共有、権限マトリクス、権限マトリクスのロール、スペース、招待、ユーザー、アクセストークンなどの操作の種類で絞り込みます。
+- **操作者を選択**:特定のユーザーが実行した操作を表示します。
+- **スペースを選択**:特定のスペース内のアクティビティを表示します。
+- **ベースを選択**:特定のベースに関するアクティビティを表示します。
+- **アクションを選択**:レコード、フィールド、ビュー、テーブル、ベース、共有、権限マトリクス、権限マトリクスのロール、スペース、招待、ユーザー、アクセストークンなどの操作の種類で絞り込みます。
ユーザー、ベース、またはスペースが削除されても、そのエントリはログに残り、リソースには削除済みと表示されます。
diff --git a/ja/basic/admin-panel/automation-management.mdx b/ja/basic/admin-panel/automation-management.mdx
index a7830fde..fd22818b 100644
--- a/ja/basic/admin-panel/automation-management.mdx
+++ b/ja/basic/admin-panel/automation-management.mdx
@@ -6,7 +6,7 @@ description: "システム管理でオートメーションの実行状態、成
{/* mintlify-resync: 2026-05-14 */}
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → オートメーション管理
+パス:システム管理 → オートメーション管理
**オートメーション管理**では、インスタンス全体のオートメーション実行状態を確認します。
@@ -27,8 +27,8 @@ description: "システム管理でオートメーションの実行状態、成
メインページでは、次のフィルターを使用できます。
-- **期間**: 直近30分、1時間、6時間、1日、3日、7日、または30日。
-- **トリガー**: トリガーの種類でオートメーションを絞り込みます。
+- **期間**:直近30分、1時間、6時間、1日、3日、7日、または30日。
+- **トリガー**:トリガーの種類でオートメーションを絞り込みます。
## オートメーション一覧
@@ -59,5 +59,5 @@ description: "システム管理でオートメーションの実行状態、成
オートメーション一覧では、次の操作を行えます。
-- **無効化**: オートメーションがトリガーされないようにします。
-- **削除対象にする**: オートメーションを削除対象としてマークします。
+- **無効化**:オートメーションがトリガーされないようにします。
+- **削除対象にする**:オートメーションを削除対象としてマークします。
diff --git a/ja/basic/admin-panel/computed-outbox.mdx b/ja/basic/admin-panel/computed-outbox.mdx
index dcba1988..7e002e5f 100644
--- a/ja/basic/admin-panel/computed-outbox.mdx
+++ b/ja/basic/admin-panel/computed-outbox.mdx
@@ -5,7 +5,7 @@ description: "システム管理でBullMQの配信と計算タスクのバック
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → 計算済みOutbox
+パス:システム管理 → 計算済みOutbox
数式、ルックアップ、その他の計算フィールドの値が更新されない場合や、想定より大幅に時間がかかる場合は、**計算済みOutbox**を使用します。このページには、タスク全体の稼働状態、キューを通過しているジョブ、復旧が必要な可能性のあるタスク、計算タスクが現在一時停止しているスペースが表示されます。
@@ -15,9 +15,9 @@ description: "システム管理でBullMQの配信と計算タスクのバック
| ステータス | 意味 |
| --- | --- |
-| **正常** | 計算タスクは正常に実行されています。 |
-| **低下** | Teableが、失敗、タイムアウトしたタスク、または増加中のバックログを検出しました。 |
-| **重大** | BullMQを利用できないか、タスクを処理できるワーカーがありません。 |
+| **正常** | 計算タスクは正常に実行されています。|
+| **低下** | Teableが、失敗、タイムアウトしたタスク、または増加中のバックログを検出しました。|
+| **重大** | BullMQを利用できないか、タスクを処理できるワーカーがありません。|
対応が必要な状態の場合、ページにその理由が表示されます。
@@ -47,10 +47,10 @@ description: "システム管理でBullMQの配信と計算タスクのバック
| セクション | 確認できる内容 |
| --- | --- |
-| 概要 | エンドツーエンドのレイテンシ、ソースが変更された日時、値が収束した日時、実行をトリガーしたテーブルとフィールド。**計算中**バッジは、チェーンがまだ実行中であることを示します。 |
-| **タイムライン** | 実行がエンキュー、開始、完了、または失敗した日時。 |
-| **タスクチェーン** | カスケード内のすべてのタスクを、エンキュー元のタスクの下に入れ子で表示し、分岐元を確認できます。各行には、状態、計画ステップ、**書き込み先**(そのタスクが更新するテーブルとフィールド)、**変更行**、カスケードの深さ、エンキュー日時、所要時間が表示されます。 |
-| **フィールドの伝播** | 実行が読み書きしたフィールドと、その間を変更がどのように伝わったかを示します。青い破線はこの書き込みにつながった起点、灰色は今回の実行では書き込まれなかった入力、緑は今回書き込まれた項目を表します。矢印はステップの順序ではなく、フィールドの依存関係またはリンク経由の移動を示します。今回の実行の書き込みへ実際に到達する起点だけが描画されます。横長のチェーンをインラインで追いにくい場合は、**展開**を使用してグラフを全画面で開きます。 |
+| 概要 | エンドツーエンドのレイテンシ、ソースが変更された日時、値が収束した日時、実行をトリガーしたテーブルとフィールド。**計算中**バッジは、チェーンがまだ実行中であることを示します。|
+| **タイムライン** | 実行がエンキュー、開始、完了、または失敗した日時。|
+| **タスクチェーン** | カスケード内のすべてのタスクを、エンキュー元のタスクの下に入れ子で表示し、分岐元を確認できます。各行には、状態、計画ステップ、**書き込み先**(そのタスクが更新するテーブルとフィールド)、**変更行**、カスケードの深さ、エンキュー日時、所要時間が表示されます。|
+| **フィールドの伝播** | 実行が読み書きしたフィールドと、その間を変更がどのように伝わったかを示します。青い破線はこの書き込みにつながった起点、灰色は今回の実行では書き込まれなかった入力、緑は今回書き込まれた項目を表します。矢印はステップの順序ではなく、フィールドの依存関係またはリンク経由の移動を示します。今回の実行の書き込みへ実際に到達する起点だけが描画されます。横長のチェーンをインラインで追いにくい場合は、**展開**を使用してグラフを全画面で開きます。|
系統台帳には、この機能の提供開始後に作成されたタスクだけが記録され、履歴は7日間保持されます。それ以前のタスクには、伝播グラフなしでキュー情報が表示されます。ワーカーがまだ計画していないシードタスクには、トリガーフィールドだけが表示されます。変更によって下流の計算書き込みが発生しなかった場合、グラフにはその旨が表示されます。数式、ルックアップ、ロールアップ、リンクタイトルを通じて、それらのフィールドに依存する項目がなかったことを意味します。
@@ -64,9 +64,9 @@ description: "システム管理でBullMQの配信と計算タスクのバック
| 異常の種類 | 操作 | 実行内容 |
| --- | --- | --- |
-| **デッドレター** | **グループ全体を復旧** | そのグループに現在含まれるすべてのデッドレターを永続キューへ戻し、再配信します。他のグループには影響しません。 |
-| **デッドレター** | **グループを破棄**(**その他の操作**メニュー内) | グループ内のデッドレターを完全に削除します。後から復旧または再実行できないため、再実行に意味がない場合にのみ使用してください。 |
-| **タイムアウト** | **最新のタイムアウトを再開** | グループ内で最も新しいタスクのキューを起動し、ワーカーが引き継げるようにします。 |
+| **デッドレター** | **グループ全体を復旧** | そのグループに現在含まれるすべてのデッドレターを永続キューへ戻し、再配信します。他のグループには影響しません。|
+| **デッドレター** | **グループを破棄**(**その他の操作**メニュー内) | グループ内のデッドレターを完全に削除します。後から復旧または再実行できないため、再実行に意味がない場合にのみ使用してください。|
+| **タイムアウト** | **最新のタイムアウトを再開** | グループ内で最も新しいタスクのキューを起動し、ワーカーが引き継げるようにします。|
グループの復旧後、Teableは復元したタスク数、新規にキューへ追加された数またはすでにキューにあった数、配信または延期された数を報告します。その後、ワーカーは現在の同時実行数とタスク分割の制限に従ってグループを処理します。
@@ -90,7 +90,9 @@ description: "システム管理でBullMQの配信と計算タスクのバック
一時停止によって止まるのは、ワーカーがそのスペースの新しい計算タスクを取得する処理だけです。すでに実行中のタスクは中断されず、該当するタスクは破棄されずに一時停止の終了まで待機します。
-一時停止は必ず自動的に終了し、設定できる最長時間は2時間です。障害がそれより長く続く場合は、このページからスペースを再び一時停止します。一覧には、有効な各一時停止について、作成者、理由、自動再開の日時、および有効な一時停止によって保留されているタスク数が表示されるため、再開によって解放されるバックログを判断できます。早めに解除するには、該当行の**再開**をクリックして確定します。
+一時停止は必ず自動的に終了し、設定できる最長時間は2時間です。障害がそれより長く続く場合は、その一時停止の行で**延長**をクリックし、どれだけ延長するかを選んで確定します。新しい自動再開の時刻は確定した時点から計算され、上限は同じく2時間です。そのため、その間にスペースが再開されることはありません。
+
+一覧には、有効な各一時停止について、作成者、理由、自動再開の日時、および有効な一時停止によって保留されているタスク数が表示されるため、再開によって解放されるバックログを判断できます。早めに解除するには、該当行の**再開**をクリックして確定します。
## 同時実行数を調整する
@@ -98,8 +100,8 @@ description: "システム管理でBullMQの配信と計算タスクのバック
| コントロール | 制限する内容 |
| --- | --- |
-| **プロセスごとの同時実行数** | 各ワーカープロセスが同時に処理する計算タスクの数。 |
-| **ベースごとの取得上限** | 1つのベースで同時に実行する計算タスク数(**ベースごと**)と、その中の1つのソーステーブルで同時に実行する数(**シードテーブルごと**)。どちらもデフォルトは2で、1から16までの値を指定できます。 |
+| **プロセスごとの同時実行数** | 各ワーカープロセスが同時に処理する計算タスクの数。|
+| **ベースごとの取得上限** | 1つのベースで同時に実行する計算タスク数(**ベースごと**)と、その中の1つのソーステーブルで同時に実行する数(**シードテーブルごと**)。どちらもデフォルトは2で、1から16までの値を指定できます。|
1つの高負荷ベースがボトルネックの場合は取得上限を引き上げ、多数のベースが同時にキューへ入っている場合はプロセスごとの同時実行数を引き上げます。
diff --git a/ja/basic/admin-panel/database-tenant.mdx b/ja/basic/admin-panel/database-tenant.mdx
index ee39f5ec..d007a507 100644
--- a/ja/basic/admin-panel/database-tenant.mdx
+++ b/ja/basic/admin-panel/database-tenant.mdx
@@ -5,7 +5,7 @@ description: "Teableスペースのデータを顧客管理のPostgreSQLデー
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → BYODB
+パス:システム管理 → BYODB
データベーステナントは、特定の顧客や業務用スペースで、データストレージを個別に管理する必要がある場合に役立ちます。そのスペースの業務データは、他のスペースとインスタンスのデフォルトデータベースを共有せず、指定したPostgreSQLデータベースに保存されるため、1つのテナントのデータベース負荷や障害が他のスペースへ及ぼす影響を軽減できます。また、組織側でデータベースのデプロイ先、データベースのアクセス制御、バックアップ、監視を管理できます。
diff --git a/ja/basic/admin-panel/sandbox-agent.mdx b/ja/basic/admin-panel/sandbox-agent.mdx
index d46d1259..ffe45564 100644
--- a/ja/basic/admin-panel/sandbox-agent.mdx
+++ b/ja/basic/admin-panel/sandbox-agent.mdx
@@ -6,7 +6,7 @@ description: "サンドボックスエージェントを設定、管理します
{/* mintlify-resync: 2026-05-26 */}
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → サンドボックスエージェント
+パス:システム管理 → サンドボックスエージェント
**サンドボックスエージェント**ページには、サンドボックス内でのAIチャットの実行方法を設定するための**設定**タブと**サンドボックス**タブがあります。
diff --git a/ja/basic/admin-panel/settings.mdx b/ja/basic/admin-panel/settings.mdx
index 806e6ce8..b7d528e1 100644
--- a/ja/basic/admin-panel/settings.mdx
+++ b/ja/basic/admin-panel/settings.mdx
@@ -5,7 +5,7 @@ description: "インスタンスレベルのスイッチ、メール設定、シ
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → インスタンス設定
+パス:システム管理 → インスタンス設定
**インスタンス設定**ページでは、**一般設定**、**メール**、**保留中の設定**パネルに表示されるシステムチェックなど、インスタンス全体の基本設定を管理します。
@@ -59,8 +59,8 @@ description: "インスタンスレベルのスイッチ、メール設定、シ
両者の役割は、次のように分かれます。
-- **インスタンス設定**: インスタンス自体の基本機能を扱います
-- **AI設定**: AIチャット、AIフィールド、AIオートメーション、App Builderを扱います
+- **インスタンス設定**:インスタンス自体の基本機能を扱います
+- **AI設定**:AIチャット、AIフィールド、AIオートメーション、App Builderを扱います
## 確認する順序
diff --git a/ja/basic/admin-panel/skills.mdx b/ja/basic/admin-panel/skills.mdx
index eb76d277..90ec86f8 100644
--- a/ja/basic/admin-panel/skills.mdx
+++ b/ja/basic/admin-panel/skills.mdx
@@ -5,7 +5,7 @@ description: "インスタンス内のすべてのAIエージェントが使用
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → Skill
+パス:システム管理 → Skill
**Skill**を使用して、インスタンス全体へSkillを公開します。ここで追加したSkillは、すべてのAIチャット、App Builder、ボットの会話で利用できます。組織で標準として共有すべき作業方法、たとえば社内の文章スタイル、レポート規則、共通の連携手順などに使用してください。
@@ -17,7 +17,7 @@ description: "インスタンス内のすべてのAIエージェントが使用
| 取得元 | 指定する内容 |
| --- | --- |
-| **GitHub URL** | リポジトリ内のSkillフォルダーへのリンク。例: `https://github.com/owner/repo/tree/main/skills/my-skill` |
+| **GitHub URL** | リポジトリ内のSkillフォルダーへのリンク。例:`https://github.com/owner/repo/tree/main/skills/my-skill` |
| **ZIP / Skillファイル** | `.zip`または`.skill`形式で、`SKILL.md`を含むファイル |
同じ名前のSkillがこのスコープにすでに存在する場合、インポートすると置き換えられます。
diff --git a/ja/basic/admin-panel/spaces.mdx b/ja/basic/admin-panel/spaces.mdx
index 98beae61..c3de2d52 100644
--- a/ja/basic/admin-panel/spaces.mdx
+++ b/ja/basic/admin-panel/spaces.mdx
@@ -7,18 +7,18 @@ description: "スペース情報の表示、スペースの削除、自動参加
### スペース情報
-* **スペース名**: スペースの表示名
-* **ベース**: スペースに含まれるベースの総数
-* **コラボレーター**: スペースへのアクセス権を持つユーザーの総数
-* **作成日時**: スペースが作成された日時
-* **自動参加**: 新しいユーザーがスペースへ自動的に参加できるかどうか
+* **スペース名**:スペースの表示名
+* **ベース**:スペースに含まれるベースの総数
+* **コラボレーター**:スペースへのアクセス権を持つユーザーの総数
+* **作成日時**:スペースが作成された日時
+* **自動参加**:新しいユーザーがスペースへ自動的に参加できるかどうか
### スペースの操作
#### 自動参加
-* **自動参加を許可**: 有効にすると、新しく登録したすべてのユーザーが[読み取り権限](/ja/basic/space/space-invite)でこのスペースへ自動的に参加します。公開スペースや全社用スペースに便利です。
-* **自動参加を許可しない**: 新しいユーザーの自動参加を無効にします。
+* **自動参加を許可**:有効にすると、新しく登録したすべてのユーザーが[読み取り権限](/ja/basic/space/space-invite)でこのスペースへ自動的に参加します。公開スペースや全社用スペースに便利です。
+* **自動参加を許可しない**:新しいユーザーの自動参加を無効にします。
#### スペースを削除する
@@ -30,7 +30,7 @@ description: "スペース情報の表示、スペースの削除、自動参加
* コラボレーターはスペースへのアクセス権を失います
* この操作は元に戻せません
-**スペースを削除する前に:**
+**スペースを削除する前に:**
1. すべてのコラボレーターへ削除について通知します
2. 重要なデータをエクスポートまたはバックアップします
3. スペースが不要であることを確認します
diff --git a/ja/basic/admin-panel/table-query-ops.mdx b/ja/basic/admin-panel/table-query-ops.mdx
index d5d384a9..5ca33430 100644
--- a/ja/basic/admin-panel/table-query-ops.mdx
+++ b/ja/basic/admin-panel/table-query-ops.mdx
@@ -5,7 +5,7 @@ description: "低速なテーブルに対するクエリリスクの推奨事項
セルフホストのBusinessプラン以上で利用できます
-パス: システム管理 → テーブルクエリ運用
+パス:システム管理 → テーブルクエリ運用
大規模なテーブルでビュー、フィルター、リレーション、検索が遅くなった場合は、**テーブルクエリ運用**を使用します。バックグラウンドアナライザーがクエリのワークロードを監視し、観測結果を推奨事項に変換します。このページには推奨事項が一覧表示されるため、インスタンス管理者は根拠を確認し、特定のテーブルを詳しく分析して、データベースの変更を確定できます。
@@ -21,22 +21,26 @@ description: "低速なテーブルに対するクエリリスクの推奨事項
| セクション | 示される内容 |
| --- | --- |
-| **トリガー** | 推奨事項の発生元: 観測されたクエリトラフィック、保存済みビューの設定、またはリレーションフィールドの設定。保存済みビューがトリガーの場合、低速クエリはまだ観測されておらず、設定自体によってリスクが検出されています。 |
-| **アクセスパス** | このテーブルへのアクセスに、シーケンシャルスキャンとインデックススキャンがそれぞれ使用された頻度。 |
-| **理由** | 大規模なテーブル、フィルターまたは並べ替えフィールドに有効なインデックスがない、高コストな並べ替え、観測されたタイムアウトなど、わかりやすく示した原因。 |
-| **クエリ形状** | 絞り込みと並べ替えに使用される具体的なフィールド、および各フィールドで使用する一致の種類。 |
-| **提案インデックス** | 推奨事項によってインデックスが作成されるフィールドと、その理由。 |
+| **トリガー** | 推奨事項の発生元:観測されたクエリトラフィック、保存済みビューの設定、またはリレーションフィールドの設定。保存済みビューがトリガーの場合、低速クエリはまだ観測されておらず、設定自体によってリスクが検出されています。|
+| **アクセスパス** | このテーブルへのアクセスに、シーケンシャルスキャンとインデックススキャンがそれぞれ使用された頻度。|
+| **理由** | 大規模なテーブル、フィルターまたは並べ替えフィールドに有効なインデックスがない、高コストな並べ替え、観測されたタイムアウトなど、わかりやすく示した原因。|
+| **クエリ形状** | 絞り込みと並べ替えに使用される具体的なフィールド、および各フィールドで使用する一致の種類。|
+| **提案インデックス** | 推奨事項によってインデックスが作成されるフィールドと、その理由。|
**詳細分析**をクリックすると、そのテーブルが入力済みの状態で分析ワークスペースが開きます。
-アナライザーがテーブル全体に対する高頻度の部分文字列検索を検出すると、フィールドごとのインデックスではなく、テーブル全体に対する**生成テキストGIN**の推奨事項が1件作成されます。この行には**詳細分析**の代わりに**検索パスを作成**が表示され、**インデックスを追加**は表示されません。検索アクセスパスは分析ワークスペースから適用し、最初に**EXPLAINサンプル検索**を行う必要があるためです。テーブルにパスが設定されると、推奨事項は自動的に終了します。
+アナライザーがテーブル全体に対する高頻度の部分文字列検索を検出すると、フィールドごとのインデックスではなく、テーブル全体に対する**生成テキストGIN**の推奨事項が1件作成されます。この行には**詳細分析**の代わりに**検索パスを作成**が表示され、**インデックスを追加**は表示されません。テーブルにパスが設定されると、推奨事項は自動的に終了します。
+
+**検索パスを作成**をクリックすると、同じページのダイアログでそのテーブルのドライランが実行され、画面を移動する必要はありません。ダイアログには、候補のインデックスプロバイダー、対象フィールド数、推定行数、適用前後の`EXPLAIN`コストが表示されます。ダイアログが示す最小文字数以上のサンプル検索語を入力してください。この語は検証にのみ使われ、保存されません。大きなテーブルでは、メンテナンスウィンドウのチェックボックスも確認します。確定すると、候補が再度検証されてから検索パスが有効になります。
+
+分析で候補が得られない場合は、ダイアログが理由を示し、何も実行しません。ワイドテーブルは、Teableが全フィールドを対象とする検索ドキュメントを作成しないため拒否され、検索語を長くしても結果は変わりません。その場合は**選択したフィールドを分析**をクリックし、分析ワークスペースでユーザーが実際に検索するフィールドだけを分析します。
その横には、さらに2つのタブがあります。
| タブ | 表示内容 |
| --- | --- |
-| **高負荷テーブル** | リクエスト数、低速クエリ数、タイムアウト数、最長クエリ時間を含む、最も使用頻度の高いテーブル。 |
-| **タスク** | Teableが作成した修復タスクと、そのステータス、試行回数、ワーカー、最後のエラー。 |
+| **高負荷テーブル** | リクエスト数、低速クエリ数、タイムアウト数、最長クエリ時間を含む、最も使用頻度の高いテーブル。|
+| **タスク** | Teableが作成した修復タスクと、そのステータス、試行回数、ワーカー、最後のエラー。|
設定上の問題によって処理が滞っている場合、一覧の上にバナーが表示されます。たとえば、ランタイムフラグがオフの状態で検索アクセスパスが設定されている場合、一部のテーブルでアクセスパスが古いか再構築待ちになり、検索が通知なく低速な`ILIKE`スキャンへフォールバックしている場合、最も古いキュー内のタスクが長時間待機し、処理するワーカーがないと考えられる場合です。下の推奨事項に対応する前に、バナーで報告されている問題を修正してください。
@@ -46,12 +50,12 @@ description: "低速なテーブルに対するクエリリスクの推奨事項
| バッジ | 意味 |
| --- | --- |
-| **手動確認が必要** | この推奨事項を適用できるのは管理者だけです。 |
-| **シャドウ · 自動実行対象** | 推奨事項は承認基準を満たしていますが、自動実行が有効でないため、変更は行われていません。 |
-| **自動実行中** / **自動実行済み** | 自動実行によって推奨事項が承認、適用されました。 |
-| **事後検証に失敗 · バックオフ中** | 自動変更が検証に合格しませんでした。Teableは、そのテーブルを再試行するまでの待機時間を延ばします。 |
-| **クールダウン中** | 同じスコープが最近変更されたため、システムが処理を見合わせています。 |
-| **保留** / **自動実行は未適用** | 計画の根拠またはテーブルサイズが、自動実行の基準を満たしていません。 |
+| **手動確認が必要** | この推奨事項を適用できるのは管理者だけです。|
+| **シャドウ · 自動実行対象** | 推奨事項は承認基準を満たしていますが、自動実行が有効でないため、変更は行われていません。|
+| **自動実行中** / **自動実行済み** | 自動実行によって推奨事項が承認、適用されました。|
+| **事後検証に失敗 · バックオフ中** | 自動変更が検証に合格しませんでした。Teableは、そのテーブルを再試行するまでの待機時間を延ばします。|
+| **クールダウン中** | 同じスコープが最近変更されたため、システムが処理を見合わせています。|
+| **保留** / **自動実行は未適用** | 計画の根拠またはテーブルサイズが、自動実行の基準を満たしていません。|
デフォルトでは、Teableは判断を記録して推奨事項とタスクのレコードを作成するだけで、データベースを自動的に変更しません。自動実行は`V2_TABLE_QUERY_OPS_AUTO_ACCEPT=auto`で明示的に有効にする必要があります。有効にした場合も、実行計画で明確なコスト改善が示された小規模なテーブルにのみ適用されます。それ以外はすべて管理者の対応を待ちます。
@@ -69,8 +73,8 @@ description: "低速なテーブルに対するクエリリスクの推奨事項
| 分析の種類 | 用途 |
| --- | --- |
-| **クエリとインデックス** | クエリリスクとインデックス改善の可能性を見つけます。 |
-| **部分文字列検索** | 一致動作を変更せずに、部分文字列検索アクセスパスによって包含検索を高速化できるか確認します。 |
+| **クエリとインデックス** | クエリリスクとインデックス改善の可能性を見つけます。|
+| **部分文字列検索** | 一致動作を変更せずに、部分文字列検索アクセスパスによって包含検索を高速化できるか確認します。|
**テーブル**、**ベース**、**スペース**のいずれかを選択し、対応するIDを入力して、分析の種類を選びます。低速なテーブルがわかっている場合は、**テーブル**から始めてください。
diff --git a/ja/basic/admin-panel/template-admin.mdx b/ja/basic/admin-panel/template-admin.mdx
index 3c6eba99..77084742 100644
--- a/ja/basic/admin-panel/template-admin.mdx
+++ b/ja/basic/admin-panel/template-admin.mdx
@@ -11,27 +11,27 @@ description: "組織のワークフローテンプレートを管理し、事前
#### テンプレート情報
-* **カバー**: テンプレートカードのカバー画像
-* **名前と説明**: テンプレートセンターに表示されるタイトルと短い説明
-* **Markdownの説明**: リッチテキスト形式に対応した詳細説明
-* **カテゴリー**: ビジネスシナリオ(例: 人事、営業、エンジニアリング)別にテンプレートを分類します
-* **システム**: 公式システムテンプレートかどうかを示します
-* **ソース**: このテンプレートの作成元となるベース
+* **カバー**:テンプレートカードのカバー画像
+* **名前と説明**:テンプレートセンターに表示されるタイトルと短い説明
+* **Markdownの説明**:リッチテキスト形式に対応した詳細説明
+* **カテゴリー**:ビジネスシナリオ(例:人事、営業、エンジニアリング)別にテンプレートを分類します
+* **システム**:公式システムテンプレートかどうかを示します
+* **ソース**:このテンプレートの作成元となるベース
#### テンプレートの操作
-* **新しいテンプレート**: 新しいテンプレート設定を作成します
-* **スナップショットを公開**: ソースベースの現在の状態を取得します。テンプレートを一覧へ掲載する前に、スナップショットを公開する必要があります。
+* **新しいテンプレート**:新しいテンプレート設定を作成します
+* **スナップショットを公開**:ソースベースの現在の状態を取得します。テンプレートを一覧へ掲載する前に、スナップショットを公開する必要があります。
* **ステータス(公開)**: テンプレートセンターへのテンプレートの掲載と非掲載を切り替えます。名前、説明、スナップショットが必要です。
-* **固定**: 重要なテンプレートを一覧の上部に固定します
-* **削除**: テンプレート設定を削除します
+* **固定**:重要なテンプレートを一覧の上部に固定します
+* **削除**:テンプレート設定を削除します
### 公式テンプレートを使用する
セルフホスト版のユーザーは、Teable Cloudの公式テンプレートをインポートできます。
-1. **ダウンロード**: [公式テンプレートセンター](https://teable.ai/templates)から`.tea`ファイルを取得します
-2. **インポート**: `.tea`ファイルをスペース内の新しいベースとしてインポートします
-3. **テンプレートを作成**: テンプレート管理 > 新しいテンプレートへ移動します
-4. **ソースを選択**: インポートしたベースをソースとして選択します
-5. **公開**: 詳細を設定し、スナップショットを公開して、ステータスを有効にします ---
+1. **ダウンロード**:[公式テンプレートセンター](https://teable.ai/templates)から`.tea`ファイルを取得します
+2. **インポート**:`.tea`ファイルをスペース内の新しいベースとしてインポートします
+3. **テンプレートを作成**:テンプレート管理 > 新しいテンプレートへ移動します
+4. **ソースを選択**:インポートしたベースをソースとして選択します
+5. **公開**:詳細を設定し、スナップショットを公開して、ステータスを有効にします ---
diff --git a/ja/basic/admin-panel/users.mdx b/ja/basic/admin-panel/users.mdx
index b5580291..5c29a247 100644
--- a/ja/basic/admin-panel/users.mdx
+++ b/ja/basic/admin-panel/users.mdx
@@ -7,22 +7,22 @@ description: "ユーザー情報の表示、ユーザーの無効化と削除な
### ユーザー情報
-* **ユーザー名**: ユーザーの表示名
-* **最終ログイン**: ユーザーが最後にシステムへログインした日時
-* **登録日時**: ユーザーが最初にアカウントを登録した日時
-* **ステータス**: ユーザーアカウントの現在の状態(有効、無効化、削除済み)
+* **ユーザー名**:ユーザーの表示名
+* **最終ログイン**:ユーザーが最後にシステムへログインした日時
+* **登録日時**:ユーザーが最初にアカウントを登録した日時
+* **ステータス**:ユーザーアカウントの現在の状態(有効、無効化、削除済み)
### ユーザーの操作
#### 権限
-* **管理者に設定**: インスタンス全体の管理権限を付与します
-* **管理者から削除**: 管理者権限を取り消します
+* **管理者に設定**:インスタンス全体の管理権限を付与します
+* **管理者から削除**:管理者権限を取り消します
#### アカウントの状態
-* **無効化**: ユーザーはログインできなくなりますが、データは保持されます
-* **有効化**: 無効化されたユーザーのアクセス権を復元します
+* **無効化**:ユーザーはログインできなくなりますが、データは保持されます
+* **有効化**:無効化されたユーザーのアクセス権を復元します
#### パスワードをリセットする
@@ -34,6 +34,6 @@ description: "ユーザー情報の表示、ユーザーの無効化と削除な
#### 削除
-* **削除**: ユーザーを論理削除します(削除済みとしてマーク)
-* **復元**: 論理削除されたユーザーを復元します
-* **完全に削除**: ユーザーデータを完全に削除します(元に戻せません)
+* **削除**:ユーザーを論理削除します(削除済みとしてマーク)
+* **復元**:論理削除されたユーザーを復元します
+* **完全に削除**:ユーザーデータを完全に削除します(元に戻せません)
diff --git a/ja/basic/ai/ai-chat.mdx b/ja/basic/ai/ai-chat.mdx
index 531547bd..96cc26f3 100644
--- a/ja/basic/ai/ai-chat.mdx
+++ b/ja/basic/ai/ai-chat.mdx
@@ -18,10 +18,10 @@ AIは現在のページを優先します。他のテーブル、ビュー、ア
AIは、現在のページにある情報を優先します。
-- **現在のテーブルとビュー**: 現在のテーブル、現在のビュー、そのビューで絞り込みまたは並べ替えられた結果。
-- **選択した行、列、セル**: グリッドビューで行、列、単一セル、またはセル範囲を選択すると、AIはその選択範囲を重要なコンテキストとして使用します。
-- **アップロードしたファイル**: PDF、Excelファイル、Word文書、画像などのファイルを会話に追加します。
-- **`@`で追加するその他のノード**: 入力ボックスに`@`と入力し、ツリーからテーブル、ビュー、アプリ、オートメーション、フォルダーを追加します。
+- **現在のテーブルとビュー**:現在のテーブル、現在のビュー、そのビューで絞り込みまたは並べ替えられた結果。
+- **選択した行、列、セル**:グリッドビューで行、列、単一セル、またはセル範囲を選択すると、AIはその選択範囲を重要なコンテキストとして使用します。
+- **アップロードしたファイル**:PDF、Excelファイル、Word文書、画像などのファイルを会話に追加します。
+- **`@`で追加するその他のノード**:入力ボックスに`@`と入力し、ツリーからテーブル、ビュー、アプリ、オートメーション、フォルダーを追加します。
ファイルは、入力ボックスへ直接貼り付けたりドロップしたりすることもできます。最初に添付ファイルのチップとして表示され、メッセージの送信後にAIから利用できるようになります。
@@ -29,15 +29,15 @@ AIは、現在のページにある情報を優先します。
## 入力コントロール
-- **音声入力**: 入力ボックスのマイクボタンをクリックし、マイクへのアクセスを許可して録音を開始します。録音中は、**音声入力を完了**または**音声入力を破棄**を選択できます。完了を選択すると、Teableが録音を文字に起こして入力ボックスへ入力します。
-- **モデル**: モデルメニューで会話に使用するモデルを選択します。単純なクエリ、データ整理、文章の書き換えには軽量モデルを使用し、複雑な計画、テーブル横断分析、アプリ構築には高性能モデルを使用します。
-- **インテリジェンス**: モデルメニューで**インテリジェンス**レベルを個別に選択します。これは思考の深さを制御し、レベルが高いほど、より詳細な推論が行われます。
-- **シークレット**: **+**メニューを開き、**シークレット**を選択して、AIチャットで使用するAPIキーやその他の認証情報を保存します。AIチャットは、これらの値を環境変数として読み取れます。保存した値は書き込み専用です。シークレットを更新するには新しい値を入力します。
-- **連携**: AIがサードパーティーアカウントへのアクセスを必要とする場合、会話内に**Slackへ接続**などのカードが表示されます。**接続**をクリックしてOAuth認証を行います。認証をキャンセルするには**スキップ**をクリックします。AIは、その接続なしで完了できる処理を続行します。
+- **音声入力**:入力ボックスのマイクボタンをクリックし、マイクへのアクセスを許可して録音を開始します。録音中は、**音声入力を完了**または**音声入力を破棄**を選択できます。完了を選択すると、Teableが録音を文字に起こして入力ボックスへ入力します。
+- **モデル**:モデルメニューで会話に使用するモデルを選択します。単純なクエリ、データ整理、文章の書き換えには軽量モデルを使用し、複雑な計画、テーブル横断分析、アプリ構築には高性能モデルを使用します。
+- **インテリジェンス**:モデルメニューで**インテリジェンス**レベルを個別に選択します。これは思考の深さを制御し、レベルが高いほど、より詳細な推論が行われます。
+- **シークレット**:**+**メニューを開き、**シークレット**を選択して、AIチャットで使用するAPIキーやその他の認証情報を保存します。AIチャットは、これらの値を環境変数として読み取れます。保存した値は書き込み専用です。シークレットを更新するには新しい値を入力します。
+- **連携**:AIがサードパーティーアカウントへのアクセスを必要とする場合、会話内に**Slackへ接続**などのカードが表示されます。**接続**をクリックしてOAuth認証を行います。認証をキャンセルするには**スキップ**をクリックします。AIは、その接続なしで完了できる処理を続行します。
- **Skill**: **+**メニューを開き、**Skill**を選択して、現在のチャットでSkillをインポート、有効化、無効化、試用します。インポート時に利用者を選びます。**個人**は自分だけ、**ベース**はこのベースのコラボレーター、**スペース**はこのスペースの全員が利用できます。入力ボックスに`/`と入力すると、有効なSkillを選択できます。外部システムへの接続または移行については、[あらゆるデータへ接続・移行](/ja/basic/ai/connect-everything)をご覧ください。
-- **コンテキスト使用量**: 入力ボックスの横にあるリングは、会話が現在使用しているモデルのコンテキストウィンドウの量を示します。クリックすると、割合とトークン数を確認できます。コンテキストがいっぱいになると、Teableは会話を圧縮します。新しいコンテキストから始める場合は、新しいチャットを開始してください。
-- **ファイルを管理**: **+** → **その他** → **ファイルを管理**を開くと、現在のチャットのサンドボックス内にあるファイルを表示できます。対応ファイルのプレビュー、ファイルのダウンロード、不要になったファイルやフォルダーの削除が可能です。ファイルを管理するには、会話が存在している必要があります。
-- **メッセージキュー**: AIの処理中に別のメッセージを送信しても、処理は中断されません。メッセージは入力ボックス上部のキューで待機し、現在の実行が終了すると送信されます。キュー内の項目には、チャット入力時と同じテーブル、ビュー、添付ファイル、選択範囲のチップが保持されます。**削除**で項目を取り除き、**...** → **メッセージを編集**で入力ボックスへ戻せます。テキストだけの項目では、待機する代わりに、そのテキストを実行中のターンへ渡す**指示を追加**も利用できます。
+- **コンテキスト使用量**:入力ボックスの横にあるリングは、会話が現在使用しているモデルのコンテキストウィンドウの量を示します。クリックすると、割合とトークン数を確認できます。コンテキストがいっぱいになると、Teableは会話を圧縮します。新しいコンテキストから始める場合は、新しいチャットを開始してください。
+- **ファイルを管理**:**+** → **その他** → **ファイルを管理**を開くと、現在のチャットのサンドボックス内にあるファイルを表示できます。対応ファイルのプレビュー、ファイルのダウンロード、不要になったファイルやフォルダーの削除が可能です。ファイルを管理するには、会話が存在している必要があります。
+- **メッセージキュー**:AIの処理中に別のメッセージを送信しても、処理は中断されません。メッセージは入力ボックス上部のキューで待機し、現在の実行が終了すると送信されます。キュー内の項目には、チャット入力時と同じテーブル、ビュー、添付ファイル、選択範囲のチップが保持されます。**削除**で項目を取り除き、**...** → **メッセージを編集**で入力ボックスへ戻せます。テキストだけの項目では、待機する代わりに、そのテキストを実行中のターンへ渡す**指示を追加**も利用できます。
## 一般的な用途
@@ -60,7 +60,7 @@ AIは、現在のページにある情報を優先します。
AIチャットは質問に回答するだけでなく、データの作成、更新、整理にも役立ちます。新しい業務ワークフローでは、まずデータ構造について相談し、その後、テーブル、ビュー、アプリ、オートメーションの作成をAIに依頼します。
-適したプロンプトの例:
+適したプロンプトの例:
- 顧客フォローアップシステムの計画を手伝ってください。どのようなテーブルとフィールドが必要ですか?
- 上記の計画に基づいて、これらのテーブル、ビュー、フィールドを作成してください。
@@ -88,7 +88,7 @@ AIチャットは質問に回答するだけでなく、データの作成、更
### データを分析する
-現在のテーブルのデータについて質問します。例:
+現在のテーブルのデータについて質問します。例:
- 今月完了したタスクを担当者別に集計してください。
- 過去30日間で売上が最も高い顧客を見つけてください。
@@ -209,14 +209,14 @@ AIがグラフ、レポート、ダッシュボード形式のページ、小規
## プロンプトのヒント
-- **最初に目標を示す**: 最初のメッセージに、実行する内容、関連条件、期待する出力を記述します。たとえば、過去3か月の週次売上推移を地域別に分析し、短い結論を添えた推移表を返すように依頼します。
-- **フィールド名を使用する**: たとえば、`作成日時`で並べ替えるよう指定すると、AIが対象の列を特定できます。
-- **複数の例を提示する**: 固定形式の出力では、入力 -> 期待する出力の例を3~5件提示します。
-- **`@`でノードを選択する**: AIがテーブル、ビュー、アプリ、オートメーション、フォルダーを参照する必要がある場合は、`@`と入力して直接選択します。
-- **実行前に確認する**: データの変更、テーブルの作成、アプリの作成、オートメーションの有効化を伴うタスクでは、実行前に変更内容を説明するようAIへ依頼します。
-- **タスクに応じてモデルを選択する**: スペースでモデル選択を利用できる場合、単純なクエリ、データ整理、文章の書き換えには軽量モデルを使用し、複雑な計画、テーブル横断分析、アプリ構築には高性能モデルを使用します。
-- **インテリジェンスレベルを調整する**: **インテリジェンス**は思考の深さを制御し、レベルが高いほど、より詳細な推論が行われます。
-- **話題が変わったら新しいチャットを開始する**: 話題が変わった場合、会話が長くなりすぎた場合、コンテキスト使用量を減らしたい場合は、新しいチャットを推奨します。
+- **最初に目標を示す**:最初のメッセージに、実行する内容、関連条件、期待する出力を記述します。たとえば、過去3か月の週次売上推移を地域別に分析し、短い結論を添えた推移表を返すように依頼します。
+- **フィールド名を使用する**:たとえば、`作成日時`で並べ替えるよう指定すると、AIが対象の列を特定できます。
+- **複数の例を提示する**:固定形式の出力では、入力 -> 期待する出力の例を3~5件提示します。
+- **`@`でノードを選択する**:AIがテーブル、ビュー、アプリ、オートメーション、フォルダーを参照する必要がある場合は、`@`と入力して直接選択します。
+- **実行前に確認する**:データの変更、テーブルの作成、アプリの作成、オートメーションの有効化を伴うタスクでは、実行前に変更内容を説明するようAIへ依頼します。
+- **タスクに応じてモデルを選択する**:スペースでモデル選択を利用できる場合、単純なクエリ、データ整理、文章の書き換えには軽量モデルを使用し、複雑な計画、テーブル横断分析、アプリ構築には高性能モデルを使用します。
+- **インテリジェンスレベルを調整する**:**インテリジェンス**は思考の深さを制御し、レベルが高いほど、より詳細な推論が行われます。
+- **話題が変わったら新しいチャットを開始する**:話題が変わった場合、会話が長くなりすぎた場合、コンテキスト使用量を減らしたい場合は、新しいチャットを推奨します。
## よくある質問
diff --git a/ja/basic/ai/app-builder-practical-guide.mdx b/ja/basic/ai/app-builder-practical-guide.mdx
index 5050bbaf..a086aa40 100644
--- a/ja/basic/ai/app-builder-practical-guide.mdx
+++ b/ja/basic/ai/app-builder-practical-guide.mdx
@@ -62,7 +62,7 @@ AIとの会話ごとに変更が生成されます。推奨する進め方は、
App Builderの実行環境(サンドボックス、プレビュー、ビルド)は**Next.js**を基盤としており、現在はAstro、Vite、Create React App、Vue、Svelteなど、他のフロントエンドフレームワークには**対応していません**。
-Next.js以外のフレームワークを使用するようAIに依頼しても、常に拒否されるとは限らず、対応するコードを生成しようとする場合もあります。しかし、基盤となる環境に互換性がないため、**プレビューの起動に失敗します**。「プレビューを開始しています...」の状態から進まなくなり、その間も会話でクレジットが消費され続けます。
+Next.js以外のフレームワークを使用するようAIに依頼しても、常に拒否されるとは限らず、対応するコードを生成しようとする場合もあります。しかし、基盤となる環境に互換性がないため、**プレビューの起動に失敗します**。「プレビューを開始しています。..」の状態から進まなくなり、その間も会話でクレジットが消費され続けます。
Next.js以外のフレームワークを使用する必要がある場合は、独自のローカル環境で開発し、Teable API経由でデータへ接続することをおすすめします。
@@ -97,62 +97,62 @@ Teable APIは現在、**10 QPS**(1秒あたり10リクエスト)に制限さ
- **状況**: ダッシュボードページに複数のグラフ、統計カード、一覧があり、それぞれが別のテーブルへクエリを実行します。または、主に表示用のページであるにもかかわらず、訪問のたびにAPIへ直接アクセスします。どちらの場合も、ページ読み込み時の同時実行数が急増し、アクセスの増加によって429エラーが発生しやすくなります。
+ **状況**:ダッシュボードページに複数のグラフ、統計カード、一覧があり、それぞれが別のテーブルへクエリを実行します。または、主に表示用のページであるにもかかわらず、訪問のたびにAPIへ直接アクセスします。どちらの場合も、ページ読み込み時の同時実行数が急増し、アクセスの増加によって429エラーが発生しやすくなります。
- **修正方法**: キャッシュしやすいレンダリングパターンを優先します。読み込み後にアプリのメモリへデータをキャッシュし(最初は1~3分のTTLが適切です)、その後の訪問で再利用します。画面外のコンポーネントを遅延読み込みし、リクエストのタイミングを分散します。それでも訪問のたびに再取得する場合は、キャッシュ戦略を強化するよう明示的にAIへ依頼します。
+ **修正方法**:キャッシュしやすいレンダリングパターンを優先します。読み込み後にアプリのメモリへデータをキャッシュし(最初は1~3分のTTLが適切です)、その後の訪問で再利用します。画面外のコンポーネントを遅延読み込みし、リクエストのタイミングを分散します。それでも訪問のたびに再取得する場合は、キャッシュ戦略を強化するよう明示的にAIへ依頼します。
- **参考プロンプト**: 「このページは表示中心です。キャッシュしやすいレンダリング方式を優先してください。ページ読み込み後、1分間のTTLでデータをローカルにキャッシュし、TTL期間中はAPIへ再リクエストせず、画面外のコンポーネントは500ミリ秒遅延させてください。」
+ **参考プロンプト**:「このページは表示中心です。キャッシュしやすいレンダリング方式を優先してください。ページ読み込み後、1分間のTTLでデータをローカルにキャッシュし、TTL期間中はAPIへ再リクエストせず、画面外のコンポーネントは500ミリ秒遅延させてください。」
- **状況**: 同じページにある3つのコンポーネントが同じテーブルのデータを必要とし、それぞれ独自のリクエストを送信しています。本来は1回で十分です。
+ **状況**:同じページにある3つのコンポーネントが同じテーブルのデータを必要とし、それぞれ独自のリクエストを送信しています。本来は1回で十分です。
- **修正方法**: データ取得を一元化し、同じデータセットを一度だけ読み込んで、コンポーネント間で共有します。
+ **修正方法**:データ取得を一元化し、同じデータセットを一度だけ読み込んで、コンポーネント間で共有します。
- **参考プロンプト**: 「複数のコンポーネントが同じテーブルのデータを必要とする場合は、一度だけ取得して、すべてのコンポーネントで共有してください。重複リクエストを送信しないでください。」
+ **参考プロンプト**:「複数のコンポーネントが同じテーブルのデータを必要とする場合は、一度だけ取得して、すべてのコンポーネントで共有してください。重複リクエストを送信しないでください。」
- **状況**: ユーザーがページ間を行き来します。変更がない場合でも、戻るたびに新たなデータ取得が実行されます。
+ **状況**:ユーザーがページ間を行き来します。変更がない場合でも、戻るたびに新たなデータ取得が実行されます。
- **修正方法**: キャッシュのTTL期間内は、再リクエストせず、以前に読み込んだデータを再利用します。
+ **修正方法**:キャッシュのTTL期間内は、再リクエストせず、以前に読み込んだデータを再利用します。
- **参考プロンプト**: 「ユーザーがページへ戻ったとき、最後の読み込みから1分未満であれば、キャッシュデータを使用してください。APIへ再リクエストしないでください。」
+ **参考プロンプト**:「ユーザーがページへ戻ったとき、最後の読み込みから1分未満であれば、キャッシュデータを使用してください。APIへ再リクエストしないでください。」
- **状況**: ドロップダウンの選択肢として、テーブルのすべてのレコードを表示します。レコード数が多いと、その1回のリクエストだけでも負荷が高くなります。
+ **状況**:ドロップダウンの選択肢として、テーブルのすべてのレコードを表示します。レコード数が多いと、その1回のリクエストだけでも負荷が高くなります。
- **修正方法**: 検索形式の選択ツールへ変更し、ユーザーが入力した後に一致するレコードだけを取得します。または、選択肢一覧をキャッシュします。
+ **修正方法**:検索形式の選択ツールへ変更し、ユーザーが入力した後に一致するレコードだけを取得します。または、選択肢一覧をキャッシュします。
- **参考プロンプト**: 「ドロップダウンでは最初にすべての選択肢を読み込まないでください。入力に応じて一致するレコードを取得するキーワード検索へ変更し、デバウンスを適用してください。」
+ **参考プロンプト**:「ドロップダウンでは最初にすべての選択肢を読み込まないでください。入力に応じて一致するレコードを取得するキーワード検索へ変更し、デバウンスを適用してください。」
- **状況**: 1つのフィールドを選択すると、次の階層の選択肢が読み込まれます。複数階層の連動によって、1回の操作で複数のリクエストが発生します。
+ **状況**:1つのフィールドを選択すると、次の階層の選択肢が読み込まれます。複数階層の連動によって、1回の操作で複数のリクエストが発生します。
- **修正方法**: 関連データを一度事前読み込みしてローカルで絞り込むか、最初の読み込み後に連動データをキャッシュします。
+ **修正方法**:関連データを一度事前読み込みしてローカルで絞り込むか、最初の読み込み後に連動データをキャッシュします。
- **参考プロンプト**: 「読み込み後、連動セレクターの選択肢データをローカルへキャッシュしてください。ユーザーが親の選択肢を変更したら、再リクエストせず、キャッシュから絞り込んでください。」
+ **参考プロンプト**:「読み込み後、連動セレクターの選択肢データをローカルへキャッシュしてください。ユーザーが親の選択肢を変更したら、再リクエストせず、キャッシュから絞り込んでください。」
- **状況**: 不適切な状態管理により、コンポーネントがレンダリングのたびにデータを再取得します。
+ **状況**:不適切な状態管理により、コンポーネントがレンダリングのたびにデータを再取得します。
- **修正方法**: レンダリングのたびではなく、特定のイベント(最初のマウント、明示的なユーザー操作)でデータ取得を実行します。安全策としてキャッシュを使用します。
+ **修正方法**:レンダリングのたびではなく、特定のイベント(最初のマウント、明示的なユーザー操作)でデータ取得を実行します。安全策としてキャッシュを使用します。
- **参考プロンプト**: 「最初のページ読み込み時または明示的なユーザー操作時にだけデータを取得してください。再レンダリング時には再取得せず、代わりにキャッシュデータを使用してください。」
+ **参考プロンプト**:「最初のページ読み込み時または明示的なユーザー操作時にだけデータを取得してください。再レンダリング時には再取得せず、代わりにキャッシュデータを使用してください。」
@@ -161,42 +161,42 @@ Teable APIは現在、**10 QPS**(1秒あたり10リクエスト)に制限さ
- **状況**: すべてのレコードを一度に読み込むと、データセットが大きくなるにつれてAPI呼び出しが急増します。
+ **状況**:すべてのレコードを一度に読み込むと、データセットが大きくなるにつれてAPI呼び出しが急増します。
- **修正方法**: ページネーションを使用し、現在のページのデータだけを取得します。
+ **修正方法**:ページネーションを使用し、現在のページのデータだけを取得します。
- **参考プロンプト**: 「1ページに20行を表示してください。ユーザーが次のページへ移動したときにだけ読み込んでください。すべてを一度に読み込まないでください。」
+ **参考プロンプト**:「1ページに20行を表示してください。ユーザーが次のページへ移動したときにだけ読み込んでください。すべてを一度に読み込まないでください。」
- **状況**: 一覧を読み込んだ後、各レコードのリンク先テーブルの詳細を1件ずつ取得します。50件のプロジェクトを読み込んだ後で、所有者を50回検索すると、瞬時に50件の追加リクエストが発生します。
+ **状況**:一覧を読み込んだ後、各レコードのリンク先テーブルの詳細を1件ずつ取得します。50件のプロジェクトを読み込んだ後で、所有者を50回検索すると、瞬時に50件の追加リクエストが発生します。
- **修正方法**: リンクデータを行ごとではなく、すべて一括で取得します。
+ **修正方法**:リンクデータを行ごとではなく、すべて一括で取得します。
- **参考プロンプト**: 「一覧を読み込むとき、すべてのリンクデータを1回のリクエストで一括取得してください。レコードをループして、リンク情報を個別に取得しないでください。」
+ **参考プロンプト**:「一覧を読み込むとき、すべてのリンクデータを1回のリクエストで一括取得してください。レコードをループして、リンク情報を個別に取得しないでください。」
- **状況**: 複数のレコードを一括更新するとき、1回の一括リクエストではなく、レコードごとに更新リクエストを送信します。
+ **状況**:複数のレコードを一括更新するとき、1回の一括リクエストではなく、レコードごとに更新リクエストを送信します。
- **修正方法**: 一括更新APIを使用し、すべての変更を1回の呼び出しで送信します。
+ **修正方法**:一括更新APIを使用し、すべての変更を1回の呼び出しで送信します。
- **参考プロンプト**: 「一括操作では、複数のレコード変更を1回の一括リクエストへまとめてください。レコードごとに更新を送信しないでください。」
+ **参考プロンプト**:「一括操作では、複数のレコード変更を1回の一括リクエストへまとめてください。レコードごとに更新を送信しないでください。」
- **状況**: `for`ループでレコードを1件ずつ処理し、各反復でAPIを呼び出します。
+ **状況**:`for`ループでレコードを1件ずつ処理し、各反復でAPIを呼び出します。
- **修正方法**: 最初にすべてのIDを収集し、その後、1回の一括リクエストを送信します。
+ **修正方法**:最初にすべてのIDを収集し、その後、1回の一括リクエストを送信します。
- **参考プロンプト**: 「ループ内でAPIを呼び出さないでください。最初に必要なすべてのIDを収集し、その後、1回の一括リクエストを送信してください。」
+ **参考プロンプト**:「ループ内でAPIを呼び出さないでください。最初に必要なすべてのIDを収集し、その後、1回の一括リクエストを送信してください。」
@@ -205,52 +205,52 @@ Teable APIは現在、**10 QPS**(1秒あたり10リクエスト)に制限さ
- **状況**: 検索ボックスでキーを入力するたびにリクエストが発生します。4文字のクエリを入力すると、4件のリクエストが発生します。
+ **状況**:検索ボックスでキーを入力するたびにリクエストが発生します。4文字のクエリを入力すると、4件のリクエストが発生します。
- **修正方法**: 入力へデバウンスを適用します。ユーザーが入力を止めてから300~500ミリ秒待って、リクエストを送信します。
+ **修正方法**:入力へデバウンスを適用します。ユーザーが入力を止めてから300~500ミリ秒待って、リクエストを送信します。
- **参考プロンプト**: 「検索入力にデバウンスを適用してください。ユーザーが入力を止めてから300ミリ秒後にだけリクエストを送信し、入力中は送信しないでください。」
+ **参考プロンプト**:「検索入力にデバウンスを適用してください。ユーザーが入力を止めてから300ミリ秒後にだけリクエストを送信し、入力中は送信しないでください。」
- **状況**: 送信ボタンの連打、フィルターの素早い切り替え、高速なページ移動など、それぞれの操作ですぐにリクエストが発生します。
+ **状況**:送信ボタンの連打、フィルターの素早い切り替え、高速なページ移動など、それぞれの操作ですぐにリクエストが発生します。
- **修正方法**: デバウンスまたはスロットルを適用します。二重送信を防ぐため、リクエストが完了するまで送信ボタンを無効にします。
+ **修正方法**:デバウンスまたはスロットルを適用します。二重送信を防ぐため、リクエストが完了するまで送信ボタンを無効にします。
- **参考プロンプト**: 「クリック後は送信ボタンを無効にし、リクエストが完了したら再び有効にしてください。フィルター変更にデバウンスを適用し、300ミリ秒以内の連続した変更では1件のリクエストだけを送信してください。」
+ **参考プロンプト**:「クリック後は送信ボタンを無効にし、リクエストが完了したら再び有効にしてください。フィルター変更にデバウンスを適用し、300ミリ秒以内の連続した変更では1件のリクエストだけを送信してください。」
- **状況**: フィールドを変更するたびに、すぐに保存します。フォームへの入力で十数回の書き込みが発生することがあります。
+ **状況**:フィールドを変更するたびに、すぐに保存します。フォームへの入力で十数回の書き込みが発生することがあります。
- **修正方法**: ボタンをクリックする明示的な保存へ切り替えるか、自動保存へデバウンスを適用し、編集が途切れた後に一度だけ実行します。
+ **修正方法**:ボタンをクリックする明示的な保存へ切り替えるか、自動保存へデバウンスを適用し、編集が途切れた後に一度だけ実行します。
- **参考プロンプト**: 「フィールドを変更するたびに保存しないでください。明示的にボタンをクリックしたときに保存するか、ユーザーが編集を2秒間停止した後に一度だけ自動保存してください。」
+ **参考プロンプト**:「フィールドを変更するたびに保存しないでください。明示的にボタンをクリックしたときに保存するか、ユーザーが編集を2秒間停止した後に一度だけ自動保存してください。」
- **状況**: 数秒ごとにデータが更新され、継続的に高頻度のトラフィックが発生します。
+ **状況**:数秒ごとにデータが更新され、継続的に高頻度のトラフィックが発生します。
- **修正方法**: ポーリング間隔を妥当な時間(30秒以上)へ延長するか、手動更新へ切り替えます。
+ **修正方法**:ポーリング間隔を妥当な時間(30秒以上)へ延長するか、手動更新へ切り替えます。
- **参考プロンプト**: 「自動更新の間隔を60秒に設定してください。ユーザーが必要に応じて最新データを取得できるよう、手動更新ボタンを追加してください。」
+ **参考プロンプト**:「自動更新の間隔を60秒に設定してください。ユーザーが必要に応じて最新データを取得できるよう、手動更新ボタンを追加してください。」
- **状況**: ページ上の複数のコンポーネントが、それぞれ独自のポーリングタイマーを設定しています。合計負荷によって、簡単に上限を超えます。
+ **状況**:ページ上の複数のコンポーネントが、それぞれ独自のポーリングタイマーを設定しています。合計負荷によって、簡単に上限を超えます。
- **修正方法**: ポーリングを一元化します。定期的な取得を1回実行し、その結果を必要とするすべてのコンポーネントへ配布します。
+ **修正方法**:ポーリングを一元化します。定期的な取得を1回実行し、その結果を必要とするすべてのコンポーネントへ配布します。
- **参考プロンプト**: 「各コンポーネントに独自のポーリングタイマーを設定させないでください。1つの更新機構を使用して、スケジュールに従ってすべてを取得し、データを各コンポーネントへ配布してください。」
+ **参考プロンプト**:「各コンポーネントに独自のポーリングタイマーを設定させないでください。1つの更新機構を使用して、スケジュールに従ってすべてを取得し、データを各コンポーネントへ配布してください。」
@@ -259,12 +259,12 @@ Teable APIは現在、**10 QPS**(1秒あたり10リクエスト)に制限さ
- **状況**: ページが`window`、DOMの寸法、その他のブラウザー専用APIに依存するグラフ、地図、ライブラリを使用しており、プレビューにエラー、空白画面、ハイドレーションの不一致が表示されます。
+ **状況**:ページが`window`、DOMの寸法、その他のブラウザー専用APIに依存するグラフ、地図、ライブラリを使用しており、プレビューにエラー、空白画面、ハイドレーションの不一致が表示されます。
- **修正方法**: このようなコンポーネントは、サーバー上で直接レンダリングせず、ブラウザーで読み込むほうが安全な場合がよくあります。プレビューの問題が続く場合は、ブラウザー専用の読み込みパターンへ切り替えるよう明示的にAIへ依頼します。
+ **修正方法**:このようなコンポーネントは、サーバー上で直接レンダリングせず、ブラウザーで読み込むほうが安全な場合がよくあります。プレビューの問題が続く場合は、ブラウザー専用の読み込みパターンへ切り替えるよう明示的にAIへ依頼します。
- **参考プロンプト**: 「このコンポーネントはブラウザー環境に依存しています。プレビューのレンダリングエラーやハイドレーションの不一致を避けるため、クライアントでのみ読み込んでください。」
+ **参考プロンプト**:「このコンポーネントはブラウザー環境に依存しています。プレビューのレンダリングエラーやハイドレーションの不一致を避けるため、クライアントでのみ読み込んでください。」
diff --git a/ja/basic/ai/app-builder.mdx b/ja/basic/ai/app-builder.mdx
index 34ce4870..ed9e3eed 100644
--- a/ja/basic/ai/app-builder.mdx
+++ b/ja/basic/ai/app-builder.mdx
@@ -19,8 +19,8 @@ App Builderは、「プロンプトからアプリへ」というワークフロ
アプリを作成する主な方法は2つあります。
-1. **ベースから**: 任意のベースで「アプリを作成」をクリックし、現在のデータにリンクされたアプリケーションを生成します。
-2. **チャットから**: AIチャットを開き、「この顧客テーブル用のCRMアプリを作成して」と伝えます。
+1. **ベースから**:任意のベースで「アプリを作成」をクリックし、現在のデータにリンクされたアプリケーションを生成します。
+2. **チャットから**:AIチャットを開き、「この顧客テーブル用のCRMアプリを作成して」と伝えます。
## アプリエディターの画面
@@ -34,18 +34,18 @@ App Builderには、技術者以外のユーザーと開発者の両方に対応
### 1. チャット画面(AI駆動)
アプリの司令塔です。
-- **自然言語による編集**: *「ヘッダーを青にして」*、*「新しいレコードの送信フォームを追加して」*など、変更内容を説明します。
-- **自動ルーティング**: AIが参照しているコンポーネントまたはページを理解し、直接変更します。
-- **連携**: アプリのタスクでサードパーティーアカウントへのアクセスが必要な場合、App Builderはチャットパネルに**Slackへ接続**などのカードを表示できます。**接続**をクリックしてOAuth認証を行います。認証をキャンセルするには**スキップ**をクリックします。AIは、その接続なしで完了できる処理を続行します。
+- **自然言語による編集**:*「ヘッダーを青にして」*、*「新しいレコードの送信フォームを追加して」*など、変更内容を説明します。
+- **自動ルーティング**:AIが参照しているコンポーネントまたはページを理解し、直接変更します。
+- **連携**:アプリのタスクでサードパーティーアカウントへのアクセスが必要な場合、App Builderはチャットパネルに**Slackへ接続**などのカードを表示できます。**接続**をクリックしてOAuth認証を行います。認証をキャンセルするには**スキップ**をクリックします。AIは、その接続なしで完了できる処理を続行します。
- **Skill**: **+**メニューを開いて**Skill**を選択し、このアプリの会話で使用するSkillを管理します。ここで追加したSkillは現在のアプリでのみ利用でき、アプリのベースとスペースで共有されているSkillも使用できます。入力ボックスに`/`と入力すると、有効なSkillを選択できます。
-- **ファイルを管理**: **+** → **その他** → **ファイルを管理**を開き、アプリのサンドボックス内にあるファイルを表示します。対応ファイルのプレビュー、生成ファイルのダウンロード、不要になったファイルやフォルダーの削除に使用します。
-- **会話を消去**: 現在の会話が本題から外れた場合は、パネル右下の**チャットを消去**をクリックして、新しいセッションを開始します。現在の会話のチャット履歴は消去されますが、アプリ自体は削除されません。初回は確認が表示され、次回から表示しないよう選択できます。
+- **ファイルを管理**:**+** → **その他** → **ファイルを管理**を開き、アプリのサンドボックス内にあるファイルを表示します。対応ファイルのプレビュー、生成ファイルのダウンロード、不要になったファイルやフォルダーの削除に使用します。
+- **会話を消去**:現在の会話が本題から外れた場合は、パネル右下の**チャットを消去**をクリックして、新しいセッションを開始します。現在の会話のチャット履歴は消去されますが、アプリ自体は削除されません。初回は確認が表示され、次回から表示しないよう選択できます。
### 2. プレビューパネル
-- **プレビューと公開版**: パネルには2つのタブがあります。**プレビュー**では、まだ公開していない変更を含め、構築中のバージョンが実行されます。**公開版**では、公開アドレスから公開済みアプリを読み込み、ユーザーに表示される内容と作業中の内容を比較できます。アプリが公開されるまでは、代わりに**公開版**へ公開を促すメッセージが表示されます。App Builderは、公開済みのアプリを**公開版**で、未公開のアプリを**プレビュー**で開き、その後はアプリで最後に使用したタブを記憶します。
-- **複数端末のシミュレーション**: 上部の切り替えを使用して、**デスクトップ**、**タブレット**、**モバイル**のビューを切り替えます。
-- **リアルタイム生成**: App Builderによる生成中、プレビューパネルにはアプリが形作られていく様子が表示されます。
-- **即時フィードバック**: App Builderが変更を完了すると、最新の保存済みバージョンでプレビューが更新されます。
+- **プレビューと公開版**:パネルには2つのタブがあります。**プレビュー**では、まだ公開していない変更を含め、構築中のバージョンが実行されます。**公開版**では、公開アドレスから公開済みアプリを読み込み、ユーザーに表示される内容と作業中の内容を比較できます。アプリが公開されるまでは、代わりに**公開版**へ公開を促すメッセージが表示されます。App Builderは、公開済みのアプリを**公開版**で、未公開のアプリを**プレビュー**で開き、その後はアプリで最後に使用したタブを記憶します。
+- **複数端末のシミュレーション**:上部の切り替えを使用して、**デスクトップ**、**タブレット**、**モバイル**のビューを切り替えます。
+- **リアルタイム生成**:App Builderによる生成中、プレビューパネルにはアプリが形作られていく様子が表示されます。
+- **即時フィードバック**:App Builderが変更を完了すると、最新の保存済みバージョンでプレビューが更新されます。
**プレビュー**タブでは、下部のフローティングツールバーを使用して、対象を絞った変更を行います。
@@ -56,9 +56,9 @@ App Builderには、技術者以外のユーザーと開発者の両方に対応
### 3. 開発者モード(コードエディター)
制限なくカスタマイズできるよう、コードへ直接アクセスできます。
-- **Monacoエディター**: ブラウザー内でVS Codeのような操作感を提供します。
-- **Reactコンポーネント**: 基盤となるReactコード、Tailwind CSSクラス、ロジックを編集します。
-- **ファイルツリー**: プロジェクト構造内を移動します。
+- **Monacoエディター**:ブラウザー内でVS Codeのような操作感を提供します。
+- **Reactコンポーネント**:基盤となるReactコード、Tailwind CSSクラス、ロジックを編集します。
+- **ファイルツリー**:プロジェクト構造内を移動します。
**Teableで構築**バッジを非表示にするには、Businessプラン以上が必要です。
@@ -221,7 +221,7 @@ Teableがブランチを強制プッシュすることはありません。履
**カスタムドメイン**を使用して、公開済みアプリへドメインを関連付けます。`app.yourdomain.com`などのサブドメインを推奨します。ドメインを入力すると、追加するDNSレコードがTeableに表示されます。DNSプロバイダーでレコードを追加し、反映を待ってからTeableでドメインを確認します。
-`teable.app`配下で利用可能なサブドメインを使用し、`teable.app`の接頭辞を編集することもできます。例: `your-name.teable.app`
+`teable.app`配下で利用可能なサブドメインを使用し、`teable.app`の接頭辞を編集することもできます。例:`your-name.teable.app`
-ログインを有効にする場合:
+ログインを有効にする場合:
1. アプリユーザーの保存場所を選択します。**ユーザー**テーブルを作成するか、メールフィールドを持つ既存のテーブルを再利用できます。サインインした各ユーザーは1件のレコードとして保存され、同じユーザーテーブルを複数のアプリで再利用できます。
2. **メールOTP**、**Google**、**Teable**など、1つ以上のサインイン方法を選択します。利用可能な方法は、インスタンスの認証設定によって異なります。
@@ -262,7 +262,7 @@ Teableがブランチを強制プッシュすることはありません。履
### バージョン履歴とロールバック
Teableは、すべてのデプロイを自動的に追跡します。
- **履歴**ボタン(時計アイコン)をクリックし、デプロイ済みのすべてのバージョンを一覧表示します。
-- **ワンクリックロールバック**: 新しい更新によって問題が発生した場合、公開中のアプリを以前の安定版へすぐに戻せます。
+- **ワンクリックロールバック**:新しい更新によって問題が発生した場合、公開中のアプリを以前の安定版へすぐに戻せます。
一部のCoding Planキーは、指定されたコーディングツールでのみ使用でき、標準APIキーではない場合があります。サードパーティーサービスで使用する前に、プロバイダーの規約を確認してください。Teableへ接続するには、プロバイダーのダッシュボードで作成した標準APIキーを使用します。
-一般的な例:
+一般的な例:
| プロバイダーの種類 | ベースURLの形式 | モデル例 |
|----------|----------------|----------------|
@@ -74,7 +74,7 @@ description: AIフィールド、オートメーション、AIチャット、App
モデル名はプロバイダーのドキュメントと完全に一致し、大文字と小文字も区別されます。複数のモデルは半角カンマで区切ります。
-注意事項:
+注意事項:
- モデル名では大文字と小文字が区別されます。プロバイダーのドキュメントに記載された正確な名前を使用してください。
- 一部のプロバイダーでは、`gpt-5.5,o3`のようにカンマの後にスペースを入れない形式が必要です。
diff --git a/ja/basic/authority-matrix.mdx b/ja/basic/authority-matrix.mdx
index e52e913d..5c5908b1 100644
--- a/ja/basic/authority-matrix.mdx
+++ b/ja/basic/authority-matrix.mdx
@@ -14,11 +14,11 @@ description: "同じベース内のチームごとにアクセス範囲を設定
| シナリオ | 適した用途 |
| --- | --- |
-| 部門レベルのアクセス | 営業は顧客レコードを管理し、財務には請求フィールドだけを表示します。 |
-| 担当者に基づくレコード | 営業担当者は、自分に割り当てられたレコードだけを表示、更新できます。 |
-| 制限付きデータ入力 | メンバーは、既存レコードを編集または削除せずに、新しいレコードを作成できます。 |
-| 共有ベース内の機密フィールド | メンバーは、支払いや原価のフィールドを表示せずに、注文レコードを閲覧できます。 |
-| 制御されたアプリとワークフロー | ロールは選択されたアプリまたはワークフローを開けますが、権限のないノードは非表示になります。 |
+| 部門レベルのアクセス | 営業は顧客レコードを管理し、財務には請求フィールドだけを表示します。|
+| 担当者に基づくレコード | 営業担当者は、自分に割り当てられたレコードだけを表示、更新できます。|
+| 制限付きデータ入力 | メンバーは、既存レコードを編集または削除せずに、新しいレコードを作成できます。|
+| 共有ベース内の機密フィールド | メンバーは、支払いや原価のフィールドを表示せずに、注文レコードを閲覧できます。|
+| 制御されたアプリとワークフロー | ロールは選択されたアプリまたはワークフローを開けますが、権限のないノードは非表示になります。|
## 権限の仕組み
@@ -48,10 +48,10 @@ description: "同じベース内のチームごとにアクセス範囲を設定
| ノードの種類 | 利用できる設定 |
| --- | --- |
-| テーブル | `編集可能`または`アクセス不可`を選択します。テーブルを`編集可能`に設定した後、詳細な権限を設定します。 |
-| アプリ | `アクセス可能`または`アクセス不可`を選択します。ロールがアプリを開けるかどうかを制御します。 |
-| ワークフロー | `アクセス可能`または`アクセス不可`を選択します。ロールがワークフローを開けるかどうかを制御します。 |
-| フォルダー | フォルダーは移動用として表示されます。アクセス可能な子ノードがない場合、そのロールにはフォルダーが表示されません。 |
+| テーブル | `編集可能`または`アクセス不可`を選択します。テーブルを`編集可能`に設定した後、詳細な権限を設定します。|
+| アプリ | `アクセス可能`または`アクセス不可`を選択します。ロールがアプリを開けるかどうかを制御します。|
+| ワークフロー | `アクセス可能`または`アクセス不可`を選択します。ロールがワークフローを開けるかどうかを制御します。|
+| フォルダー | フォルダーは移動用として表示されます。アクセス可能な子ノードがない場合、そのロールにはフォルダーが表示されません。|
ビュー、レコード、フィールド、その他の詳細なテーブル権限を設定するには、最初にテーブルを`編集可能`へ設定します。`アクセス不可`のテーブルは、そのロールのメンバーには表示されません。
@@ -61,10 +61,10 @@ description: "同じベース内のチームごとにアクセス範囲を設定
| 権限領域 | 制御する内容 |
| --- | --- |
-| ビュー権限 | ロールがビューを作成、更新、削除できるか、および`すべてのビュー`または`特定のビュー`だけを表示できるか。 |
-| レコード権限 | ロールがレコードを作成、更新、削除、コメント、コピーできるか。表示可能なレコードは、`すべてのレコード`またはフィルター条件に一致するレコードに設定できます。 |
-| フィールド権限 | ロールが特定のフィールドの値を表示、更新、作成できるか。プライマリフィールドは表示したままにする必要があります。 |
-| インポートとエクスポートの権限 | ロールがテーブルへデータをインポート、またはテーブルデータをエクスポートできるか。 |
+| ビュー権限 | ロールがビューを作成、更新、削除できるか、および`すべてのビュー`または`特定のビュー`だけを表示できるか。|
+| レコード権限 | ロールがレコードを作成、更新、削除、コメント、コピーできるか。表示可能なレコードは、`すべてのレコード`またはフィルター条件に一致するレコードに設定できます。|
+| フィールド権限 | ロールが特定のフィールドの値を表示、更新、作成できるか。プライマリフィールドは表示したままにする必要があります。|
+| インポートとエクスポートの権限 | ロールがテーブルへデータをインポート、またはテーブルデータをエクスポートできるか。|
ロール権限を利用する前に、権限マトリクスをオンにしてください。
@@ -44,9 +44,9 @@ description: "共有データ、所有者に基づくレコードアクセス、
| ノード | 設定 |
| --- | --- |
-| 顧客 | テーブルを`編集可能`に設定します。顧客データを表示できるよう、レコードとフィールドの権限を制限しないままにします。 |
-| 注文 | テーブルを`編集可能`に設定します。営業活動を確認できるよう、レコードとフィールドの権限を制限しないままにします。 |
-| 商品 | テーブルを`編集可能`に設定し、レコード権限では`レコードの読み取り`と`レコードにコメント`だけを許可します。 |
+| 顧客 | テーブルを`編集可能`に設定します。顧客データを表示できるよう、レコードとフィールドの権限を制限しないままにします。|
+| 注文 | テーブルを`編集可能`に設定します。営業活動を確認できるよう、レコードとフィールドの権限を制限しないままにします。|
+| 商品 | テーブルを`編集可能`に設定し、レコード権限では`レコードの読み取り`と`レコードにコメント`だけを許可します。|
}}` を使用します。 |
+| **ステータスコード** | 200~299の任意のコード。デフォルトは200です。|
+| **コンテンツタイプ** | **JSON** または**プレーンテキスト**。デフォルトは JSON です。|
+| **レスポンス本文** | 返すテキスト。受信リクエストの値を挿入するには `{{body.}}` を使用します。|
**カスタム**へ切り替えると、多くの呼び出し元が必要とするハンドシェイク応答が本文にあらかじめ入力されます。
diff --git a/ja/basic/base.mdx b/ja/basic/base.mdx
index 848b2f57..3e82a9fb 100644
--- a/ja/basic/base.mdx
+++ b/ja/basic/base.mdx
@@ -40,11 +40,11 @@ description: "ベースを作成、管理、インポート、エクスポート
一般的な操作は次のとおりです。
-- **フォルダーを作成**: 左側のサイドバーでフォルダーを作成し、関連するリソースをまとめます。
-- **リソースを移動**: テーブル、アプリ、オートメーションをフォルダーへドラッグするか、ドラッグして順序を変更します。
-- **階層を整理**: フォルダーには子ノードを含められます。移動しやすいよう、階層を十分に浅く保ちます。
-- **説明を追加**: テーブル、アプリ、オートメーションでは、ヘッダーのリソース名の下にある**説明を追加**をクリックします。目的、所有者、引き継ぎ事項、使用規則の記録に説明を使用します。Teableは、リソースを初めて開いたときと、説明の変更後にもう一度、説明を表示します。
-- **ノード情報を確認**: リソースの`...`メニューを開き、**ノード情報**を選択すると、フォルダー、テーブル、オートメーション、アプリのIDに加え、作成情報と更新情報を確認できます。
+- **フォルダーを作成**:左側のサイドバーでフォルダーを作成し、関連するリソースをまとめます。
+- **リソースを移動**:テーブル、アプリ、オートメーションをフォルダーへドラッグするか、ドラッグして順序を変更します。
+- **階層を整理**:フォルダーには子ノードを含められます。移動しやすいよう、階層を十分に浅く保ちます。
+- **説明を追加**:テーブル、アプリ、オートメーションでは、ヘッダーのリソース名の下にある**説明を追加**をクリックします。目的、所有者、引き継ぎ事項、使用規則の記録に説明を使用します。Teableは、リソースを初めて開いたときと、説明の変更後にもう一度、説明を表示します。
+- **ノード情報を確認**:リソースの`...`メニューを開き、**ノード情報**を選択すると、フォルダー、テーブル、オートメーション、アプリのIDに加え、作成情報と更新情報を確認できます。
### ベースを別のスペースへ複製する {#duplicate-a-base-to-another-space}
@@ -77,11 +77,11 @@ description: "ベースを作成、管理、インポート、エクスポート
### ベースをインポートする(データ移行)
`.tea`ファイル形式では、すべてのテーブル、フィールド、データ、設定を含む完全なベースをインポートできます。次の用途に便利です。
-- **データ移行**: 異なるTeableインスタンス間でベースを移動します(例: Cloudからセルフホストへ)
-- **バックアップの復元**: 以前にエクスポートしたベースを復元します
-- **テンプレートの共有**: 完全なベース構造を他のチームと共有します
+- **データ移行**:異なるTeableインスタンス間でベースを移動します(例:Cloudからセルフホストへ)
+- **バックアップの復元**:以前にエクスポートしたベースを復元します
+- **テンプレートの共有**:完全なベース構造を他のチームと共有します
-**手順:**
+**手順:**
1. スペースを開きます
2. スペースの右上にある「···」ボタンをクリックしてメニューを開きます
3. 「インポート」をクリックします
@@ -99,7 +99,7 @@ description: "ベースを作成、管理、インポート、エクスポート
バックアップまたは移行のため、ベースを`.tea`ファイルへエクスポートします。エクスポートしたファイルには、すべてのテーブル、フィールド、データ、ビュー、設定が含まれます。
-**手順:**
+**手順:**
1. スペースを開きます
2. エクスポートするベースにカーソルを合わせます
3. 「···」ボタンをクリックしてメニューを開きます
@@ -110,7 +110,7 @@ description: "ベースを作成、管理、インポート、エクスポート
@@ -139,8 +139,8 @@ description: "ベースを作成、管理、インポート、エクスポート
| 範囲 | 説明 |
|------|------|
-| **ベース全体を共有** | 現在のベース内のすべての項目を共有します。後から追加した新しいテーブルとフォルダーも自動的に含まれます。 |
-| **選択した項目を共有** | 現在選択している項目を共有します。フォルダーを共有すると、その子項目も含まれます。 |
+| **ベース全体を共有** | 現在のベース内のすべての項目を共有します。後から追加した新しいテーブルとフォルダーも自動的に含まれます。|
+| **選択した項目を共有** | 現在選択している項目を共有します。フォルダーを共有すると、その子項目も含まれます。|
共有設定では、リンク権限、**閲覧者によるデータのコピーを許可**、パスワードアクセス、リンクの再生成、共有リンクの削除、埋め込み設定のコピーを構成できます。
@@ -160,8 +160,8 @@ description: "ベースを作成、管理、インポート、エクスポート
そのため、ベース内のほとんどの機能はテーブルに関連しています。
-* **テーブルを作成**: プロジェクト固有の要件に基づいて新しいテーブルを作成し、テーブル構造、フィールド、データ型を定義できます。
-* **テーブルを編集**: ベース内の既存のテーブルを編集し、レコードの追加、削除、変更を行えます。
-* **データをエクスポート、インポート**: データのCSVへのエクスポートと、CSVおよびXLSX形式のデータのインポートに対応しています。
+* **テーブルを作成**:プロジェクト固有の要件に基づいて新しいテーブルを作成し、テーブル構造、フィールド、データ型を定義できます。
+* **テーブルを編集**:ベース内の既存のテーブルを編集し、レコードの追加、削除、変更を行えます。
+* **データをエクスポート、インポート**:データのCSVへのエクスポートと、CSVおよびXLSX形式のデータのインポートに対応しています。
テーブルの詳細については、[テーブルのセクション](/ja/basic/table)をご覧ください。
diff --git a/ja/basic/field/conditional-lookup.mdx b/ja/basic/field/conditional-lookup.mdx
index 797ef2e5..8d518b8f 100644
--- a/ja/basic/field/conditional-lookup.mdx
+++ b/ja/basic/field/conditional-lookup.mdx
@@ -32,6 +32,9 @@ description: "フィルター条件を使用してテーブル間のデータを
必要に応じて、並べ替えフィールド、並べ替え順、表示するレコード数を設定します。
+
+ **重複する値を削除**をオンにすると、同じ値は最初に現れたものだけが残ります。重複の削除はフィルター、並べ替え、レコード数の制限を適用したあとに行われるため、制限の対象は結果に残る値の数ではなく、条件に一致したレコード数のままです。
+
少なくとも1つのフィルター条件が必要です。複数の条件がある場合は、「すべての条件を満たす(AND)」または「いずれかの条件を満たす(OR)」を選択します。
diff --git a/ja/basic/field/formula/cheat-sheet.mdx b/ja/basic/field/formula/cheat-sheet.mdx
index b7acc3c3..147852c9 100644
--- a/ja/basic/field/formula/cheat-sheet.mdx
+++ b/ja/basic/field/formula/cheat-sheet.mdx
@@ -12,25 +12,25 @@ mode: "wide"
| 関数名 | 説明 | 入力 | 出力 | 例 |
| ------------ | ----------- | ----- | ------ | ------- |
-| SUM | 数値を加算します。number1 + number2 + ... と同等です。 | `number1, [number2, ...]` | Number | `SUM(100, 200, 300) => 600` |
-| AVERAGE | 数値の平均を返します。 | `number1, [number2, ...]` | Number | `AVERAGE(100, 200, 300) => 200` |
-| MAX | 指定した数値のうち最大の値を返します。 | `number1, [number2, ...]` | Number | `MAX(100, 200, 300) => 300` |
-| MIN | 指定した数値のうち最小の値を返します。 | `number1, [number2, ...]` | Number | `MIN(100, 200, 300) => 100` |
-| ROUND | 値を「precision」で指定した小数点以下の桁数に丸めます。 | `value, [precision]` | Number | `ROUND(1.99, 0) => 2` `ROUND(16.8, -1) => 20` |
-| ROUNDUP | 常にゼロから離れる方向へ切り上げます。 | `value, [precision]` | Number | `ROUNDUP(1.1, 0) => 2` `ROUNDUP(-1.1, 0) => -2` |
-| ROUNDDOWN | 常にゼロに近づく方向へ切り捨てます。 | `value, [precision]` | Number | `ROUNDDOWN(1.9, 0) => 1` `ROUNDDOWN(-1.9, 0) => -1` |
-| CEILING | 値以上となる最も近い整数倍を返します。 | `value, [significance]` | Number | `CEILING(2.49) => 3` `CEILING(2.49, 1) => 2.5` |
-| FLOOR | 値以下となる最も近い整数倍を返します。 | `value, [significance]` | Number | `FLOOR(2.49) => 2` `FLOOR(2.49, 1) => 2.4` |
-| EVEN | 指定した値以上となる最小の偶数を返します。 | `value` | Number | `EVEN(0.1) => 2` `EVEN(-0.1) => -2` |
-| ODD | 正の値を最も近い奇数へ切り上げ、負の値を最も近い奇数へ切り下げます。 | `value` | Number | `ODD(0.1) => 1` `ODD(-0.1) => -1` |
-| INT | 数値の整数部分を返します。 | `value` | Number | `INT(1.9) => 1` `INT(-1.9) => -2` |
-| ABS | 絶対値を返します。 | `value` | Number | `ABS(-1) => 1` |
-| SQRT | 0以上の数値の平方根を返します。 | `value` | Number | `SQRT(4) => 2` |
-| POWER | 指定した底を指定した指数で累乗します。 | `base, exponent` | Number | `POWER(2, 2) => 4` |
-| EXP | オイラー数(e)を指定した指数で累乗します。 | `value` | Number | `EXP(0) => 1` `EXP(1) => 2.718` |
-| LOG | 指定した底に対する値の対数を計算します。底を省略した場合は10になります。 | `value, [base=10]` | Number | `LOG(100) => 2` `LOG(1024, 2) => 10` |
-| MOD | 第1引数を第2引数で割った余りを返します。 | `value, divisor` | Number | `MOD(9, 2) => 1` `MOD(9, 3) => 0` |
-| VALUE | テキスト文字列を数値へ変換します。 | `text` | Number | `VALUE("$1,000,000") => 1000000` |
+| SUM | 数値を加算します。number1 + number2 + ... と同等です。| `number1, [number2, ...]` | Number | `SUM(100, 200, 300) => 600` |
+| AVERAGE | 数値の平均を返します。| `number1, [number2, ...]` | Number | `AVERAGE(100, 200, 300) => 200` |
+| MAX | 指定した数値のうち最大の値を返します。| `number1, [number2, ...]` | Number | `MAX(100, 200, 300) => 300` |
+| MIN | 指定した数値のうち最小の値を返します。| `number1, [number2, ...]` | Number | `MIN(100, 200, 300) => 100` |
+| ROUND | 値を「precision」で指定した小数点以下の桁数に丸めます。| `value, [precision]` | Number | `ROUND(1.99, 0) => 2` `ROUND(16.8, -1) => 20` |
+| ROUNDUP | 常にゼロから離れる方向へ切り上げます。| `value, [precision]` | Number | `ROUNDUP(1.1, 0) => 2` `ROUNDUP(-1.1, 0) => -2` |
+| ROUNDDOWN | 常にゼロに近づく方向へ切り捨てます。| `value, [precision]` | Number | `ROUNDDOWN(1.9, 0) => 1` `ROUNDDOWN(-1.9, 0) => -1` |
+| CEILING | 値以上となる最も近い整数倍を返します。| `value, [significance]` | Number | `CEILING(2.49) => 3` `CEILING(2.49, 1) => 2.5` |
+| FLOOR | 値以下となる最も近い整数倍を返します。| `value, [significance]` | Number | `FLOOR(2.49) => 2` `FLOOR(2.49, 1) => 2.4` |
+| EVEN | 指定した値以上となる最小の偶数を返します。| `value` | Number | `EVEN(0.1) => 2` `EVEN(-0.1) => -2` |
+| ODD | 正の値を最も近い奇数へ切り上げ、負の値を最も近い奇数へ切り下げます。| `value` | Number | `ODD(0.1) => 1` `ODD(-0.1) => -1` |
+| INT | 数値の整数部分を返します。| `value` | Number | `INT(1.9) => 1` `INT(-1.9) => -2` |
+| ABS | 絶対値を返します。| `value` | Number | `ABS(-1) => 1` |
+| SQRT | 0以上の数値の平方根を返します。| `value` | Number | `SQRT(4) => 2` |
+| POWER | 指定した底を指定した指数で累乗します。| `base, exponent` | Number | `POWER(2, 2) => 4` |
+| EXP | オイラー数(e)を指定した指数で累乗します。| `value` | Number | `EXP(0) => 1` `EXP(1) => 2.718` |
+| LOG | 指定した底に対する値の対数を計算します。底を省略した場合は10になります。| `value, [base=10]` | Number | `LOG(100) => 2` `LOG(1024, 2) => 10` |
+| MOD | 第1引数を第2引数で割った余りを返します。| `value, divisor` | Number | `MOD(9, 2) => 1` `MOD(9, 3) => 0` |
+| VALUE | テキスト文字列を数値へ変換します。| `text` | Number | `VALUE("$1,000,000") => 1000000` |
## テキスト関数
@@ -38,24 +38,24 @@ mode: "wide"
| 関数名 | 説明 | 入力 | 出力 | 例 |
| ------------ | ----------- | ----- | ------ | ------- |
-| CONCATENATE | 複数の値型の引数を1つのテキスト値に結合します。 | `text1, [text2, ...]` | Text | `CONCATENATE("Hello ", "Teable") => Hello Teable` |
-| FIND | 指定したテキスト内で部分文字列の位置を検索します。見つからない場合は0を返します。 | `stringToFind, whereToSearch, [startFromPosition]` | Number | `FIND("Teable", "Hello Teable") => 7` |
-| SEARCH | 指定したテキスト内で部分文字列の位置を検索します。見つからない場合は空を返します。FINDと似ていますが、0ではなく空を返します。 | `stringToFind, whereToSearch, [startFromPosition]` | Text or Empty | `SEARCH("Teable", "Hello Teable") => 7` |
-| MID | テキスト文字列の指定位置から、指定した文字数を抽出します。 | `text, whereToStart, count` | Text | `MID("Hello Teable", 6, 6) => "Teable"` |
-| LEFT | 文字列の先頭から指定した文字数を抽出します。 | `text, count` | Text | `LEFT("2023-09-06", 4) => "2023"` |
-| RIGHT | 文字列の末尾から指定した文字数を抽出します。 | `text, count` | Text | `RIGHT("2023-09-06", 5) => "09-06"` |
-| REPLACE | 指定位置から指定した文字数を置換テキストに置き換えます。 | `text, whereToStart, count, replacement` | Text | `REPLACE("Hello Table", 7, 5, "Teable") => "Hello Teable"` |
-| REGEXP_REPLACE | 正規表現に一致するすべての部分文字列を置換テキストに置き換えます。 | `text, regular_expression, replacement` | Text | `REGEXP_REPLACE("Hello Table", "H.* ", "") => "Teable"` |
-| SUBSTITUTE | 古いテキストを新しいテキストに置き換えます。インデックスを指定すると、古いテキストの特定の出現箇所だけを置換できます。省略した場合はすべての出現箇所を置換します。 | `text, oldText, newText, [index]` | Text | `SUBSTITUTE("Hello Table", "Table", "Teable") => "Hello Teable"` |
-| TEXTBEFORE | 指定した区切り文字より前のテキストを返します。 | `text, delimiter` | Text | `TEXTBEFORE("20, 04, 79", ",") => "20"` |
-| TEXTSPLIT | 指定した区切り文字でテキストを分割し、複数のテキスト値を返します。 | `text, delimiter` | Array | `TEXTSPLIT("20, 04, 79", ",") => ["20", " 04", " 79"]` |
-| LOWER | 文字列を小文字に変換します。 | `text` | Text | `LOWER("Hello Teable") => "hello teable"` |
-| UPPER | 文字列を大文字に変換します。 | `text` | Text | `UPPER("Hello Teable") => "HELLO TEABLE"` |
-| REPT | テキストを指定した回数だけ繰り返します。 | `text, number` | Text | `REPT("Hello!", 3) => "Hello!Hello!Hello!"` |
-| TRIM | 文字列の先頭と末尾から空白文字を削除します。 | `text` | Text | `TRIM(" Hello ") => "Hello"` |
-| LEN | 文字列の文字数を数えます。 | `text` | Number | `LEN("Hello") => 5` |
-| T | 引数がテキストの場合はその値を返し、それ以外の場合は空を返します。 | `value` | Text or Empty | `T("Hello") => "Hello"` `T(100) => null` |
-| ENCODE_URL_COMPONENT | URLまたはURIを構築するため、一部の文字をエンコード表現へ置き換えます。- _ . ~ はエンコードしません。 | `value` | Text | `ENCODE_URL_COMPONENT("Hello Teable") => "Hello%20Teable"` |
+| CONCATENATE | 複数の値型の引数を1つのテキスト値に結合します。| `text1, [text2, ...]` | Text | `CONCATENATE("Hello ", "Teable") => Hello Teable` |
+| FIND | 指定したテキスト内で部分文字列の位置を検索します。見つからない場合は0を返します。| `stringToFind, whereToSearch, [startFromPosition]` | Number | `FIND("Teable", "Hello Teable") => 7` |
+| SEARCH | 指定したテキスト内で部分文字列の位置を検索します。見つからない場合は空を返します。FINDと似ていますが、0ではなく空を返します。| `stringToFind, whereToSearch, [startFromPosition]` | Text or Empty | `SEARCH("Teable", "Hello Teable") => 7` |
+| MID | テキスト文字列の指定位置から、指定した文字数を抽出します。| `text, whereToStart, count` | Text | `MID("Hello Teable", 6, 6) => "Teable"` |
+| LEFT | 文字列の先頭から指定した文字数を抽出します。| `text, count` | Text | `LEFT("2023-09-06", 4) => "2023"` |
+| RIGHT | 文字列の末尾から指定した文字数を抽出します。| `text, count` | Text | `RIGHT("2023-09-06", 5) => "09-06"` |
+| REPLACE | 指定位置から指定した文字数を置換テキストに置き換えます。| `text, whereToStart, count, replacement` | Text | `REPLACE("Hello Table", 7, 5, "Teable") => "Hello Teable"` |
+| REGEXP_REPLACE | 正規表現に一致するすべての部分文字列を置換テキストに置き換えます。| `text, regular_expression, replacement` | Text | `REGEXP_REPLACE("Hello Table", "H.* ", "") => "Teable"` |
+| SUBSTITUTE | 古いテキストを新しいテキストに置き換えます。インデックスを指定すると、古いテキストの特定の出現箇所だけを置換できます。省略した場合はすべての出現箇所を置換します。| `text, oldText, newText, [index]` | Text | `SUBSTITUTE("Hello Table", "Table", "Teable") => "Hello Teable"` |
+| TEXTBEFORE | 指定した区切り文字より前のテキストを返します。| `text, delimiter` | Text | `TEXTBEFORE("20, 04, 79", ",") => "20"` |
+| TEXTSPLIT | 指定した区切り文字でテキストを分割し、複数のテキスト値を返します。| `text, delimiter` | Array | `TEXTSPLIT("20, 04, 79", ",") => ["20", " 04", " 79"]` |
+| LOWER | 文字列を小文字に変換します。| `text` | Text | `LOWER("Hello Teable") => "hello teable"` |
+| UPPER | 文字列を大文字に変換します。| `text` | Text | `UPPER("Hello Teable") => "HELLO TEABLE"` |
+| REPT | テキストを指定した回数だけ繰り返します。| `text, number` | Text | `REPT("Hello!", 3) => "Hello!Hello!Hello!"` |
+| TRIM | 文字列の先頭と末尾から空白文字を削除します。| `text` | Text | `TRIM(" Hello ") => "Hello"` |
+| LEN | 文字列の文字数を数えます。| `text` | Number | `LEN("Hello") => 5` |
+| T | 引数がテキストの場合はその値を返し、それ以外の場合は空を返します。| `value` | Text or Empty | `T("Hello") => "Hello"` `T(100) => null` |
+| ENCODE_URL_COMPONENT | URLまたはURIを構築するため、一部の文字をエンコード表現へ置き換えます。- _ . ~ はエンコードしません。| `value` | Text | `ENCODE_URL_COMPONENT("Hello Teable") => "Hello%20Teable"` |
## 論理関数
@@ -63,15 +63,15 @@ mode: "wide"
| 関数名 | 説明 | 入力 | 出力 | 例 |
| ------------ | ----------- | ----- | ------ | ------- |
-| IF | logical引数がtrueの場合はvalue1を返し、それ以外の場合はvalue2を返します。IF文の入れ子や、セルが空かどうかの確認にも使用できます。 | `logical, value1, value2` | String \| Number \| Boolean \| Datetime | `IF(2 > 1, "A", "B") => "A"` `IF(2 > 1, TRUE, FALSE) => TRUE` |
-| SWITCH | 入力式を一連の値と照合し、対応する結果を返します。一致しない場合のデフォルト値も返せます。入れ子になったIF()数式の代わりとして使用できることがあります。 | `expression, [pattern, result]..., [default]` | String \| Number \| Boolean \| Datetime | `SWITCH("B", "A", "Value A", "B", "Value B", "Default Value") => "Value B"` |
-| AND | すべての引数がtrueの場合はtrueを返し、それ以外の場合はfalseを返します。 | `logical1, [logical2, ...]` | Boolean | `AND(1 < 2, 5 > 3) => true` `AND(1 < 2, 5 < 3) => false` |
-| OR | いずれかの引数がtrueの場合にtrueを返します。 | `logical1, [logical2, ...]` | Boolean | `OR(1 < 2, 5 < 3) => true` `OR(1 > 2, 5 < 3) => false` |
-| XOR | trueの引数が奇数個の場合にtrueを返します。 | `logical1, [logical2, ...]` | Boolean | `XOR(1 < 2, 5 < 3, 8 < 10) => false` `XOR(1 > 2, 5 < 3, 8 < 10) => true` |
-| NOT | 引数の論理値を反転します。 | `boolean` | Boolean | `NOT(1 < 2) => false` `NOT(1 > 2) => true` |
-| BLANK | null値を返します。フィールドが空かどうかの判定にも使用できます。 | `-` | null | `BLANK() => null` `IF({Weight}=BLANK(), 1, 2) => 1` |
-| ERROR | エラー値を返します。 | `message` | Error | `IF(2 > 3, "Yes", ERROR("Calculation")) => "#ERROR: Calculation"` |
-| IS_ERROR | 式でエラーが発生する場合にtrueを返します。 | `expr` | Boolean | `IS_ERROR(ERROR()) => true` |
+| IF | logical引数がtrueの場合はvalue1を返し、それ以外の場合はvalue2を返します。IF文の入れ子や、セルが空かどうかの確認にも使用できます。| `logical, value1, value2` | String \| Number \| Boolean \| Datetime | `IF(2 > 1, "A", "B") => "A"` `IF(2 > 1, TRUE, FALSE) => TRUE` |
+| SWITCH | 入力式を一連の値と照合し、対応する結果を返します。一致しない場合のデフォルト値も返せます。入れ子になったIF()数式の代わりとして使用できることがあります。| `expression, [pattern, result]..., [default]` | String \| Number \| Boolean \| Datetime | `SWITCH("B", "A", "Value A", "B", "Value B", "Default Value") => "Value B"` |
+| AND | すべての引数がtrueの場合はtrueを返し、それ以外の場合はfalseを返します。| `logical1, [logical2, ...]` | Boolean | `AND(1 < 2, 5 > 3) => true` `AND(1 < 2, 5 < 3) => false` |
+| OR | いずれかの引数がtrueの場合にtrueを返します。| `logical1, [logical2, ...]` | Boolean | `OR(1 < 2, 5 < 3) => true` `OR(1 > 2, 5 < 3) => false` |
+| XOR | trueの引数が奇数個の場合にtrueを返します。| `logical1, [logical2, ...]` | Boolean | `XOR(1 < 2, 5 < 3, 8 < 10) => false` `XOR(1 > 2, 5 < 3, 8 < 10) => true` |
+| NOT | 引数の論理値を反転します。| `boolean` | Boolean | `NOT(1 < 2) => false` `NOT(1 > 2) => true` |
+| BLANK | null値を返します。フィールドが空かどうかの判定にも使用できます。| `-` | null | `BLANK() => null` `IF({Weight}=BLANK(), 1, 2) => 1` |
+| ERROR | エラー値を返します。| `message` | Error | `IF(2 > 3, "Yes", ERROR("Calculation")) => "#ERROR: Calculation"` |
+| IS_ERROR | 式でエラーが発生する場合にtrueを返します。| `expr` | Boolean | `IS_ERROR(ERROR()) => true` |
## 日付関数
@@ -79,23 +79,23 @@ mode: "wide"
| 関数名 | 説明 | 入力 | 出力 | 例 |
| ------------ | ----------- | ----- | ------ | ------- |
-| TODAY | 現在の日付を返します。 | `-` | Datetime | `TODAY() => "2023-09-08 00:00"` |
-| NOW | 現在の日付と時刻を返します。 | `-` | Datetime | `NOW() => "2023-09-08 16:50"` |
-| YEAR | 日付の4桁の年を返します。 | `date` | Number | `YEAR("2023-09-08") => 2023` |
-| MONTH | 日付の月を1(1月)から12(12月)までの数値で返します。 | `date` | Number | `MONTH("2023-09-08") => 9` |
-| WEEKNUM | その日付が年の第何週かを返します。 | `date` | Number | `WEEKNUM("2023-09-08") => 36` |
-| WEEKDAY | 曜日を0から6までの整数で返します。第2引数に「Sunday」または「Monday」を指定して、週の開始曜日を設定することもできます。 | `date, [startDayOfWeek]` | Number | `WEEKDAY("2023-09-08", "Monday") => 5` |
-| DAY | 日付の日を1~31の数値で返します。 | `date` | Number | `DAY("2023-09-08") => 8` |
-| HOUR | 日付の時を0(午前12:00)から23(午後11:00)までの数値で返します。 | `date` | Number | `HOUR("2023-09-08 16:50") => 16` |
-| MINUTE | 日付の分を0から59までの整数で返します。 | `date` | Number | `MINUTE("2023-09-08 16:50") => 50` |
-| SECOND | 日付の秒を0から59までの整数で返します。 | `date` | Number | `SECOND("2023-09-08 16:50:30") => 30` |
-| FROMNOW | 現在の日付と別の日付の間の日数を計算します。 | `date, unit` | Number | `FROMNOW({Date}, "day") => 25` |
-| TONOW | 現在の日付と別の日付の間の日数を計算します。 | `date, unit` | Number | `TONOW({Date}, "day") => 25` |
+| TODAY | 現在の日付を返します。| `-` | Datetime | `TODAY() => "2023-09-08 00:00"` |
+| NOW | 現在の日付と時刻を返します。| `-` | Datetime | `NOW() => "2023-09-08 16:50"` |
+| YEAR | 日付の4桁の年を返します。| `date` | Number | `YEAR("2023-09-08") => 2023` |
+| MONTH | 日付の月を1(1月)から12(12月)までの数値で返します。| `date` | Number | `MONTH("2023-09-08") => 9` |
+| WEEKNUM | その日付が年の第何週かを返します。| `date` | Number | `WEEKNUM("2023-09-08") => 36` |
+| WEEKDAY | 曜日を0から6までの整数で返します。第2引数に「Sunday」または「Monday」を指定して、週の開始曜日を設定することもできます。| `date, [startDayOfWeek]` | Number | `WEEKDAY("2023-09-08", "Monday") => 5` |
+| DAY | 日付の日を1~31の数値で返します。| `date` | Number | `DAY("2023-09-08") => 8` |
+| HOUR | 日付の時を0(午前12:00)から23(午後11:00)までの数値で返します。| `date` | Number | `HOUR("2023-09-08 16:50") => 16` |
+| MINUTE | 日付の分を0から59までの整数で返します。| `date` | Number | `MINUTE("2023-09-08 16:50") => 50` |
+| SECOND | 日付の秒を0から59までの整数で返します。| `date` | Number | `SECOND("2023-09-08 16:50:30") => 30` |
+| FROMNOW | 現在の日付と別の日付の間の日数を計算します。| `date, unit` | Number | `FROMNOW({Date}, "day") => 25` |
+| TONOW | 現在の日付と別の日付の間の日数を計算します。| `date, unit` | Number | `TONOW({Date}, "day") => 25` |
| DATETIME_DIFF | 指定した単位で日時の差を返します。デフォルトの単位は秒です。(単位指定子の一覧を参照) | `date1, date2, [unit]` | Number | `DATETIME_DIFF("2022-08-01", "2023-09-08", "day") => 403` |
| WORKDAY | 指定した休日を除き、開始日から指定した営業日数だけ移動した日付を返します | `date, count, [holidayStr]` | Datetime | `WORKDAY("2023-09-08", 200) => "2024-06-14 00:00:00"` |
-| WORKDAY_DIFF | date1とdate2の間の営業日数を返します。営業日からは週末と、ISO形式の日付をカンマで区切った任意の休日一覧が除外されます。 | `date1, date2, [holidayStr]` | Number | `WORKDAY_DIFF("2023-06-18", "2023-10-01") => 75` |
-| IS_SAME | 2つの日付を指定単位で比較し、同じかどうかを判定します。同じ場合はtrue、それ以外の場合はfalseを返します。 | `date1, date2, [unit]` | Boolean | `IS_SAME("2023-09-08", "2023-09-10") => false` |
-| IS_AFTER | date1がdate2より後かどうかを判定します。後の場合はtrue、それ以外の場合はfalseを返します。 | `date1, date2, [unit]` | Boolean | `IS_AFTER("2023-09-10", "2023-09-08") => true` `IS_AFTER("2023-09-10", "2023-09-08", "month") => false` |
+| WORKDAY_DIFF | date1とdate2の間の営業日数を返します。営業日からは週末と、ISO形式の日付をカンマで区切った任意の休日一覧が除外されます。| `date1, date2, [holidayStr]` | Number | `WORKDAY_DIFF("2023-06-18", "2023-10-01") => 75` |
+| IS_SAME | 2つの日付を指定単位で比較し、同じかどうかを判定します。同じ場合はtrue、それ以外の場合はfalseを返します。| `date1, date2, [unit]` | Boolean | `IS_SAME("2023-09-08", "2023-09-10") => false` |
+| IS_AFTER | date1がdate2より後かどうかを判定します。後の場合はtrue、それ以外の場合はfalseを返します。| `date1, date2, [unit]` | Boolean | `IS_AFTER("2023-09-10", "2023-09-08") => true` `IS_AFTER("2023-09-10", "2023-09-08", "month") => false` |
## 配列関数とその他の関数
@@ -103,11 +103,11 @@ mode: "wide"
| 関数名 | 説明 | 入力 | 出力 | 例 |
| ------------ | ----------- | ----- | ------ | ------- |
-| COUNTALL | テキストと空白を含む、すべての要素の数を返します。 | `value1, [value2, ...]` | Number | `COUNTALL(100, 200, "", "Teable", TRUE()) => 5` |
-| COUNTA | 空でない値の数を返します。数値とテキスト値の両方を数えます。 | `value1, [value2, ...]` | Number | `COUNTA(100, 200, 300, "", "Teable", TRUE) => 4` |
-| COUNT | 数値項目の数を返します。 | `value1, [value2, ...]` | Number | `COUNT(100, 200, 300, "", "Teable", TRUE) => 3` |
-| ARRAY_JOIN | 区切り文字を使用して、ロールアップ項目の配列を文字列に結合します。 | `array, [separator]` | String | `ARRAY_JOIN(["Tom", "Jerry", "Mike"], "; ") => "Tom; Jerry; Mike"` |
-| ARRAY_UNIQUE | 配列内の一意の項目だけを返します。 | `array` | Array | `ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]` |
-| ARRAY_FLATTEN | 配列の入れ子をすべて取り除き、平坦化します。すべての項目が1つの配列の要素になります。 | `array` | Array | `ARRAY_FLATTEN([1, 2, " ", 3, true], ["ABC"]) => [1, 2, 3, " ", true, "ABC"]` |
-| ARRAY_COMPACT | 配列から空文字列とnull値を削除します。「false」と、1文字以上の空白を含む文字列は保持します。 | `array` | Array | `ARRAY_COMPACT([1, 2, 3, "", null, "ABC"]) => [1, 2, 3, "ABC"]` |
-| RECORD_ID | 現在のレコードのIDを返します。 | `-` | String | `RECORD_ID() => "recxxxxxx"` |
+| COUNTALL | テキストと空白を含む、すべての要素の数を返します。| `value1, [value2, ...]` | Number | `COUNTALL(100, 200, "", "Teable", TRUE()) => 5` |
+| COUNTA | 空でない値の数を返します。数値とテキスト値の両方を数えます。| `value1, [value2, ...]` | Number | `COUNTA(100, 200, 300, "", "Teable", TRUE) => 4` |
+| COUNT | 数値項目の数を返します。| `value1, [value2, ...]` | Number | `COUNT(100, 200, 300, "", "Teable", TRUE) => 3` |
+| ARRAY_JOIN | 区切り文字を使用して、ロールアップ項目の配列を文字列に結合します。| `array, [separator]` | String | `ARRAY_JOIN(["Tom", "Jerry", "Mike"], "; ") => "Tom; Jerry; Mike"` |
+| ARRAY_UNIQUE | 配列内の一意の項目だけを返します。| `array` | Array | `ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]` |
+| ARRAY_FLATTEN | 配列の入れ子をすべて取り除き、平坦化します。すべての項目が1つの配列の要素になります。| `array` | Array | `ARRAY_FLATTEN([1, 2, " ", 3, true], ["ABC"]) => [1, 2, 3, " ", true, "ABC"]` |
+| ARRAY_COMPACT | 配列から空文字列とnull値を削除します。「false」と、1文字以上の空白を含む文字列は保持します。| `array` | Array | `ARRAY_COMPACT([1, 2, 3, "", null, "ABC"]) => [1, 2, 3, "ABC"]` |
+| RECORD_ID | 現在のレコードのIDを返します。| `-` | String | `RECORD_ID() => "recxxxxxx"` |
diff --git a/ja/basic/field/lookup.mdx b/ja/basic/field/lookup.mdx
index b03b3115..95f7125b 100644
--- a/ja/basic/field/lookup.mdx
+++ b/ja/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ description: "既存のリンク関係を通じてリンク先テーブルのフ
著者の生年月日、顧客の電話番号、製品価格など、ソーステーブルから読み取るフィールドを選択します。
+
+ リンク先が複数のレコードの場合は、**重複する値を削除**をオンにすると、同じ値は最初に現れたものだけが残ります。
+
## 自動同期
diff --git a/ja/basic/record.mdx b/ja/basic/record.mdx
index 757ed4d5..39f3a122 100644
--- a/ja/basic/record.mdx
+++ b/ja/basic/record.mdx
@@ -32,10 +32,10 @@ description: "レコードはテーブルに保存される基本的なデータ
## レコードを編集する
-- **セルを編集**: 任意のセルをクリックし、内容を入力または変更します。
-- **内容を消去**: 1つ以上のセルを選択し、`Delete`または`Backspace`を押します。
-- **一括選択**: マウスをドラッグして複数のセルまたはレコードを選択し、編集、削除、コピーします。
-- **コピー&ペースト**: 1つ以上のセルをコピーして貼り付けます。貼り付けるデータの行数が現在のテーブルより多い場合、Teableが新しい行を自動的に追加します。
+- **セルを編集**:任意のセルをクリックし、内容を入力または変更します。
+- **内容を消去**:1つ以上のセルを選択し、`Delete`または`Backspace`を押します。
+- **一括選択**:マウスをドラッグして複数のセルまたはレコードを選択し、編集、削除、コピーします。
+- **コピー&ペースト**:1つ以上のセルをコピーして貼り付けます。貼り付けるデータの行数が現在のテーブルより多い場合、Teableが新しい行を自動的に追加します。
## レコードを削除する
@@ -67,10 +67,10 @@ description: "レコードはテーブルに保存される基本的なデータ
| 機能 | 説明 |
| --- | --- |
-| コメント | 各レコードには、特定のデータについての話し合い、チームメンバーへの@メンション、補足情報の追加に使用できる専用コメント欄があります。[コメント](/ja/basic/record/comment)をご覧ください。 |
-| レコード履歴 | Teableはレコードへの変更を記録するため、更新を追跡できます。[レコード履歴](/ja/basic/record/record-history)をご覧ください。 |
-| アーカイブとゴミ箱 | 完了したレコードをテーブルから除外するか、削除したレコードを復元します。[アーカイブとゴミ箱](/ja/basic/record/archive-trash)をご覧ください。 |
-| リンクレコード | **リンク**フィールドを使用して、テーブルをまたいでレコードを接続します。[リンクフィールド](/ja/basic/field/link)をご覧ください。 |
+| コメント | 各レコードには、特定のデータについての話し合い、チームメンバーへの@メンション、補足情報の追加に使用できる専用コメント欄があります。[コメント](/ja/basic/record/comment)をご覧ください。|
+| レコード履歴 | Teableはレコードへの変更を記録するため、更新を追跡できます。[レコード履歴](/ja/basic/record/record-history)をご覧ください。|
+| アーカイブとゴミ箱 | 完了したレコードをテーブルから除外するか、削除したレコードを復元します。[アーカイブとゴミ箱](/ja/basic/record/archive-trash)をご覧ください。|
+| リンクレコード | **リンク**フィールドを使用して、テーブルをまたいでレコードを接続します。[リンクフィールド](/ja/basic/field/link)をご覧ください。|
## 注意事項
diff --git a/ja/basic/record/archive-trash.mdx b/ja/basic/record/archive-trash.mdx
index 625b85cd..cc3bff84 100644
--- a/ja/basic/record/archive-trash.mdx
+++ b/ja/basic/record/archive-trash.mdx
@@ -5,7 +5,7 @@ description: "レコードを失わずにテーブルから除外するためア
グリッドから除外されたレコードは、2つの場所のいずれかへ移動します。**アーカイブ**には、日常の作業から除外したものの、まだ必要なレコードが保存されます。**ゴミ箱**には削除したレコードが保存され、元に戻せます。
-どちらも同じ場所から開きます。テーブルの横にある**...**ボタンをクリックし、**履歴** > **アーカイブ**または**履歴** > **ゴミ箱**を選択します。
+どちらも同じ場所から開きます。テーブルの横にある**。.。**ボタンをクリックし、**履歴** > **アーカイブ**または**履歴** > **ゴミ箱**を選択します。
## レコードをアーカイブする
diff --git a/ja/basic/record/comment.mdx b/ja/basic/record/comment.mdx
index 3284b195..98b54cd2 100644
--- a/ja/basic/record/comment.mdx
+++ b/ja/basic/record/comment.mdx
@@ -63,6 +63,6 @@ description: "レコード内でディスカッションを始め、チームメ
## 一般的なシナリオ
-- **タスクの明確化**: 要件またはタスクレコードの下でチームメンバーへ@メンションし、詳細を確認します。ディスカッションはレコード内に保持されます。
-- **承認へのフィードバック**: 経費精算、契約、コンテンツレビューのレコードに修正のフィードバックを残し、申請者が直接対応できるようにします。
-- **変更メモ**: 重要なフィールドの変更後に理由を追加し、後からコンテキストを確認できるようにします。
+- **タスクの明確化**:要件またはタスクレコードの下でチームメンバーへ@メンションし、詳細を確認します。ディスカッションはレコード内に保持されます。
+- **承認へのフィードバック**:経費精算、契約、コンテンツレビューのレコードに修正のフィードバックを残し、申請者が直接対応できるようにします。
+- **変更メモ**:重要なフィールドの変更後に理由を追加し、後からコンテキストを確認できるようにします。
diff --git a/ja/basic/record/record-history.mdx b/ja/basic/record/record-history.mdx
index 16f97d5b..bac230ec 100644
--- a/ja/basic/record/record-history.mdx
+++ b/ja/basic/record/record-history.mdx
@@ -15,7 +15,7 @@ description: "テーブルレベルまたは単一レコードの変更履歴を
className="docs-screenshot"
/>
-テーブル右上の**...**ボタンをクリックし、**履歴** > **テーブルのレコード履歴**を選択します。
+テーブル右上の**。.。**ボタンをクリックし、**履歴** > **テーブルのレコード履歴**を選択します。
この機能は、特に次の用途に便利です。
-- 機密フィールド(例: 給与、個人情報)を制限する
+- 機密フィールド(例:給与、個人情報)を制限する
- 所有者または部門に基づいてレコードへのアクセスを制限する
- 異なる権限セットを持つカスタムビューを作成する
diff --git a/ja/basic/space/base-invite.mdx b/ja/basic/space/base-invite.mdx
index 86363092..e2f7a063 100644
--- a/ja/basic/space/base-invite.mdx
+++ b/ja/basic/space/base-invite.mdx
@@ -11,8 +11,8 @@ description: "ベースレベルで権限を管理します。スペース全体
任意のベースを開き、右上の`招待`ボタンをクリックします。次の2つの方法を利用できます。
-- **メールで招待**: 受信者のメールアドレスを入力し、ベースの権限レベル(例:「作成者」)を設定して、**招待を送信**をクリックします。
-- **リンクで招待**: 「リンクで招待」タブへ切り替え、専用の招待リンクを生成します。リンクをコピーして共有すると、受信者がクリックして参加できます。
+- **メールで招待**:受信者のメールアドレスを入力し、ベースの権限レベル(例:「作成者」)を設定して、**招待を送信**をクリックします。
+- **リンクで招待**:「リンクで招待」タブへ切り替え、専用の招待リンクを生成します。リンクをコピーして共有すると、受信者がクリックして参加できます。
メールで招待を送信した後、パネルに表示されるベースへの直接リンクをコピーして、別途送信できます。招待されたユーザーには、ベースを開くアプリ内通知も届きます。
@@ -24,8 +24,8 @@ description: "ベースレベルで権限を管理します。スペース全体
招待パネルでは、現在ベースへのアクセス権を持つすべてのユーザーを確認できます。
-- **ベースのコラボレーター**: このベースだけに直接招待されたメンバー。
-- **スペースのコラボレーター**: 名前の横に「スペース」バッジが表示されます。このメンバーはスペースレベルの権限を持ち、このベースへのアクセス権を自動的に継承します。
+- **ベースのコラボレーター**:このベースだけに直接招待されたメンバー。
+- **スペースのコラボレーター**:名前の横に「スペース」バッジが表示されます。このメンバーはスペースレベルの権限を持ち、このベースへのアクセス権を自動的に継承します。
[権限マトリクス](/ja/basic/authority-matrix)と[権限の詳細](/ja/basic/space/space-permission)が併用されている場合、権限マトリクスの制限を受けないのは**管理者**ユーザーだけです。それ以外のすべてのユーザーは制限を受けます。
diff --git a/ja/basic/space/space-invite.mdx b/ja/basic/space/space-invite.mdx
index 418ba195..0d862c3d 100644
--- a/ja/basic/space/space-invite.mdx
+++ b/ja/basic/space/space-invite.mdx
@@ -14,7 +14,7 @@ description: "メールまたはリンクで他のユーザーをスペースの
1. 左側のサイドバーで、コラボレーターを追加するスペースをクリックします。
2. スペース上部付近の「招待」ボタンをクリックします。
3. スペースへの招待ウィンドウが開き、メールまたはリンクによる招待オプションが表示されます。以前に設定した「招待リンク」と既存の「スペースのコラボレーター」も、それぞれのセクションに表示されます。
-4. **メールで招待**: 1つまたは複数のメールアドレスを入力します(カンマ区切り)。次に、スペース内のすべてのベースでユーザーに付与する権限レベルを設定します。最後にメール送信をクリックし、共同作業へ招待します。
+4. **メールで招待**:1つまたは複数のメールアドレスを入力します(カンマ区切り)。次に、スペース内のすべてのベースでユーザーに付与する権限レベルを設定します。最後にメール送信をクリックし、共同作業へ招待します。
メールで招待を送信した後、パネルに表示されるスペースへの直接リンクをコピーして、別途送信できます。招待されたユーザーには、スペースを開くアプリ内通知も届きます。
@@ -24,7 +24,7 @@ description: "メールまたはリンクで他のユーザーをスペースの
className="docs-screenshot"
/>
-5. **リンクで招待**: 「リンクで招待」オプションをクリックします。次に、スペース内のすべてのベースに対して招待リンクが付与する権限レベルを設定します。最後にリンク作成をクリックします。作成したリンクの横にあるクリップボードアイコンをクリックして、任意の方法で共有できます。
+5. **リンクで招待**:「リンクで招待」オプションをクリックします。次に、スペース内のすべてのベースに対して招待リンクが付与する権限レベルを設定します。最後にリンク作成をクリックします。作成したリンクの横にあるクリップボードアイコンをクリックして、任意の方法で共有できます。
-* **権限の制限**: 他のコラボレーターを削除できるのは、管理者または作成者権限を持つユーザーだけです。
-* **自分を削除**: スペースに他の管理者が1人以上いる場合は、自分のアクセス権を削除できます。
-* **範囲**: スペースからユーザーを削除しても、個別のベースに対して持つ権限は削除されません。
+* **権限の制限**:他のコラボレーターを削除できるのは、管理者または作成者権限を持つユーザーだけです。
+* **自分を削除**:スペースに他の管理者が1人以上いる場合は、自分のアクセス権を削除できます。
+* **範囲**:スペースからユーザーを削除しても、個別のベースに対して持つ権限は削除されません。
新しいユーザーをスペースへ追加する際は、次のロールを割り当てられます([権限の詳細](/ja/basic/space/space-permission)を参照)。
| ロール | 説明 |
| ---- | ----------- |
-| 管理者 | 管理を担当し、ユーザー管理、テーブル、オートメーション、権限マトリクスの有効化を含む完全な権限を持ちます。 |
-| 作成者 | 作成操作、テーブル構造の変更、オートメーションの編集、権限マトリクスの有効化を行えます。 |
-| 編集者 | データを変更できます。 |
-| コメント投稿者 | レコードへコメントできますが、データは変更できません。 |
-| 閲覧者 | 表示できますが、コメントはできません。 |
+| 管理者 | 管理を担当し、ユーザー管理、テーブル、オートメーション、権限マトリクスの有効化を含む完全な権限を持ちます。|
+| 作成者 | 作成操作、テーブル構造の変更、オートメーションの編集、権限マトリクスの有効化を行えます。|
+| 編集者 | データを変更できます。|
+| コメント投稿者 | レコードへコメントできますが、データは変更できません。|
+| 閲覧者 | 表示できますが、コメントはできません。|
## ベースへのアクセスを確認する
diff --git a/ja/basic/table.mdx b/ja/basic/table.mdx
index c41a3738..09328e12 100644
--- a/ja/basic/table.mdx
+++ b/ja/basic/table.mdx
@@ -27,8 +27,8 @@ description: "ベース内のテーブルを作成、インポート、共有、
### 名前変更と削除
-- **名前を変更**: ディレクトリ内のテーブル名をダブルクリックして編集し、外側の任意の場所をクリックして保存します。
-- **削除**: ディレクトリ内のテーブルにカーソルを合わせ、`...`をクリックして**削除**を選択します。
+- **名前を変更**:ディレクトリ内のテーブル名をダブルクリックして編集し、外側の任意の場所をクリックして保存します。
+- **削除**:ディレクトリ内のテーブルにカーソルを合わせ、`...`をクリックして**削除**を選択します。
-- **復元**: すべてのデータを保持したまま、テーブルをベースへ戻します
-- **ゴミ箱を空にする**: ゴミ箱内のすべてのテーブルを完全に削除します
+- **復元**:すべてのデータを保持したまま、テーブルをベースへ戻します
+- **ゴミ箱を空にする**:ゴミ箱内のすべてのテーブルを完全に削除します
テーブルを復元しても、リンク変換は元に戻りません。他のテーブルのリンクフィールドはテキストのままになるため、接続を戻す必要がある場合は作り直してください。
@@ -105,7 +105,7 @@ description: "ベース内のテーブルを作成、インポート、共有、
テーブルの共有を有効にすると、そのテーブル内のすべてのビューで**共有**ボタンが灰色の共有状態になります。この状態はテーブル共有によるものであり、各ビューが個別に共有されているという意味ではありません。
-リンク権限:
+リンク権限:
-- **閲覧可能**: リンクを知っている全員がテーブルデータを閲覧できます
-- **編集可能**: ログイン済みユーザーが共有テーブル内のレコードを編集できます
-- **コピーとして保存可能**: リンクを知っている全員が自分のスペースへコピーを保存できます
+- **閲覧可能**:リンクを知っている全員がテーブルデータを閲覧できます
+- **編集可能**:ログイン済みユーザーが共有テーブル内のレコードを編集できます
+- **コピーとして保存可能**:リンクを知っている全員が自分のスペースへコピーを保存できます
**閲覧者によるデータのコピーを許可**、**パスワードで制限**、リンクの再生成または削除、埋め込み設定のコピーも設定できます。
diff --git a/ja/basic/table/export.mdx b/ja/basic/table/export.mdx
index 4605b9a7..9464eff6 100644
--- a/ja/basic/table/export.mdx
+++ b/ja/basic/table/export.mdx
@@ -37,5 +37,5 @@ Teableでは、テーブル全体または現在ビューに表示されてい
## 注意事項
-- **テーブル全体のエクスポート**: 非表示のフィールドとレコードを含む、テーブルの生データが含まれます。
-- **ビューのエクスポート**: 現在ビューに表示されているデータだけをエクスポートします。絞り込み、並べ替え、フィールド非表示を適用した結果に使用します。
+- **テーブル全体のエクスポート**:非表示のフィールドとレコードを含む、テーブルの生データが含まれます。
+- **ビューのエクスポート**:現在ビューに表示されているデータだけをエクスポートします。絞り込み、並べ替え、フィールド非表示を適用した結果に使用します。
diff --git a/ja/basic/table/import.mdx b/ja/basic/table/import.mdx
index 51d5a751..085e36a8 100644
--- a/ja/basic/table/import.mdx
+++ b/ja/basic/table/import.mdx
@@ -21,6 +21,9 @@ Excelファイルの上限は**5MB**です。より大きなデータセット
インポートするCSVまたはExcelファイルを選択します。Excelファイルは**5MB**以下である必要があります。
+
+ 新しいテーブルを作成すると、Teableは**AI でインポート**と**手動でインポート**を提示します。AI の選択肢は、そのベースでAIチャットを利用できる場合にのみ表示されます。
+
アップロード後のプレビューを確認します。新しいテーブルを作成する場合は、フィールド型を調整できます。既存のテーブルへ追加する場合は、ファイルの列を対象フィールドへ割り当てる方法を確認します。
@@ -43,6 +46,10 @@ Excelファイルの上限は**5MB**です。より大きなデータセット
className="docs-screenshot"
/>
+ファイルをアップロードすると、Teableは**AI で最適化してインポート**を提示します。**AI でインポート**を選ぶと、ファイルはAIチャットに渡され、AI がデータを分析してテーブル構造、関連、フィールド型を調整し、インポートまで実行します。インポートのダイアログが閉じてチャットパネルが開くため、進行状況を確認しながら、返信して結果を調整できます。これは AI クレジットを消費し、テーブルの作成権限も必要です。そのため、AIチャットを利用できる場合にのみ表示され、既存のテーブルへのインポートでは表示されません。
+
+**手動でインポート**を選ぶとフィールドのプレビューに進み、プレビューの**戻る**でこの選択に戻れます。
+
アップロード後、Teableは最初の5,000行のデータからフィールド型を予測します。インポート前に調整できます。
При необходимости задайте поле и направление сортировки, а также количество отображаемых записей.
+
+ Включите **Удалить повторяющиеся значения**, чтобы каждое значение оставалось только при первом появлении. Дубликаты удаляются после фильтра, сортировки и ограничения количества записей, поэтому ограничение по-прежнему считает подходящие записи, а не оставшиеся значения.
+
Требуется хотя бы одно условие фильтрации. Для нескольких условий выберите «Выполнены все условия (И)» или «Выполнено любое условие (ИЛИ)».
diff --git a/ru/basic/field/lookup.mdx b/ru/basic/field/lookup.mdx
index 78ec6274..1235f824 100644
--- a/ru/basic/field/lookup.mdx
+++ b/ru/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ description: "Получайте значения полей из связанн
Выберите поле для чтения из исходной таблицы, например дату рождения автора, номер телефона клиента или цену товара.
+
+ Если связь указывает на несколько записей, включите **Удалить повторяющиеся значения**: повторяющееся значение остается только при первом появлении.
+
## Автоматическая синхронизация
diff --git a/ru/basic/table/import.mdx b/ru/basic/table/import.mdx
index 18780b7f..fe94601a 100644
--- a/ru/basic/table/import.mdx
+++ b/ru/basic/table/import.mdx
@@ -21,6 +21,9 @@ description: "Импортируйте данные CSV, Excel, Airtable или
Выберите файл CSV или Excel, который хотите импортировать. Размер файлов Excel не должен превышать **5 МБ**.
+
+ При создании новой Таблицы Teable предлагает **Импортировать с помощью ИИ** или **Импортировать вручную**. Вариант с ИИ появляется, только если в этой Базе вам доступен AI-чат.
+
Просмотрите предварительный просмотр после загрузки. При создании новой Таблицы можно настроить типы Полей. При добавлении данных в существующую Таблицу подтвердите сопоставление столбцов файла с целевыми Полями.
@@ -43,6 +46,10 @@ description: "Импортируйте данные CSV, Excel, Airtable или
className="docs-screenshot"
/>
+После загрузки файла Teable предлагает **Оптимизировать и импортировать с помощью ИИ**. Вариант **Импортировать с помощью ИИ** передает файл в AI-чат: ИИ анализирует данные, настраивает структуру Таблицы, связи и типы Полей и выполняет импорт. Диалог импорта закрывается, открывается панель чата, поэтому вы видите ход работы и можете направлять результат ответами. Это расходует кредиты ИИ и требует права создавать Таблицы, поэтому предложение появляется только при доступном AI-чате и никогда при импорте в существующую Таблицу.
+
+Вариант **Импортировать вручную** открывает предварительный просмотр Полей, а кнопка **Назад** в нем возвращает к этому выбору.
+
После загрузки Teable определяет типы Полей по первым 5 000 строкам данных. Вы можете настроить их до импорта.
Gerektiğinde sıralama alanını, sıralama yönünü ve gösterilecek kayıt sayısını ayarlayın.
+
+ **Yinelenen değerleri kaldır** seçeneğini açtığınızda her değer yalnızca ilk göründüğü yerde kalır. Teable yinelenenleri filtre, sıralama ve kayıt sınırı uygulandıktan sonra kaldırır; bu nedenle sınır, sonuçta kalan değerleri değil eşleşen kayıtları saymaya devam eder.
+
En az bir filtre koşulu gereklidir. Birden fazla koşul için "Tüm koşullar karşılanıyor (AND)" veya "Herhangi bir koşul karşılanıyor (OR)" seçeneğini belirleyin.
diff --git a/tr/basic/field/lookup.mdx b/tr/basic/field/lookup.mdx
index e6a58fd2..1bad1bb0 100644
--- a/tr/basic/field/lookup.mdx
+++ b/tr/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ Arama alanları **Bağlantı** alanlarını temel alır. Bir Arama alanı, bağl
Kaynak tablodan okunacak alanı seçin; örneğin yazarın doğum tarihi, müşterinin telefon numarası veya ürünün fiyatı.
+
+ Bağlantı birden çok kaydı gösteriyorsa **Yinelenen değerleri kaldır** seçeneğini açın; tekrar eden bir değer yalnızca ilk göründüğü yerde kalır.
+
## Otomatik Eşitleme
diff --git a/tr/basic/table/import.mdx b/tr/basic/table/import.mdx
index 7ceeb0e5..41d977d4 100644
--- a/tr/basic/table/import.mdx
+++ b/tr/basic/table/import.mdx
@@ -21,6 +21,9 @@ Excel dosyaları **5 MB** ile sınırlıdır. Daha büyük bir veri kümesini i
İçe aktarmak istediğiniz CSV veya Excel dosyasını seçin. Excel dosyaları **5 MB** veya daha küçük olmalıdır.
+
+ Yeni bir tablo oluştururken Teable **AI ile içe aktar** ve **Manuel içe aktar** seçeneklerini sunar. AI seçeneği yalnızca o Base içinde AI Chat size açıksa görünür.
+
Yüklemeden sonra önizlemeyi inceleyin. Yeni bir tablo oluştururken alan türlerini ayarlayabilirsiniz. Mevcut tabloya veri eklerken dosya sütunlarının hedef alanlarla nasıl eşleştiğini doğrulayın.
@@ -43,6 +46,10 @@ Sol dizinin üst kısmındaki `+` simgesine veya yeni tabloyu içermesi gereken
className="docs-screenshot"
/>
+Dosya yüklendikten sonra Teable **AI ile optimize et ve içe aktar** seçeneğini sunar. **AI ile içe aktar**, dosyayı AI Chat’e verir: AI verileri analiz eder, tablo yapısını, ilişkileri ve alan türlerini düzenler ve içe aktarmayı çalıştırır. İçe aktarma penceresi kapanır, sohbet paneli açılır; ilerlemeyi izleyebilir ve yanıt yazarak sonucu yönlendirebilirsiniz. Bu işlem AI kredisi harcar ve tablo oluşturma izni gerektirir; bu yüzden seçenek yalnızca AI Chat size açıkken görünür, mevcut bir tabloya aktarımda ise hiç görünmez.
+
+**Manuel içe aktar** ise alan önizlemesine gider; önizlemedeki **Geri** bu seçime döndürür.
+
Yüklemeden sonra Teable, ilk 5.000 veri satırına bakarak alan türlerini tahmin eder. İçe aktarmadan önce bunları ayarlayabilirsiniz.
За потреби задайте поле сортування, напрямок сортування та кількість записів для відображення.
+
+ Увімкніть **Видалити повторювані значення**, щоб кожне значення залишалося лише в місці першої появи. Teable вилучає дублікати після фільтра, сортування та обмеження кількості записів, тому обмеження й далі рахує відповідні записи, а не значення, що лишилися в результаті.
+
Потрібна принаймні одна умова фільтра. Для кількох умов виберіть «Виконано всі умови (AND)» або «Виконано будь-яку умову (OR)».
diff --git a/uk/basic/field/lookup.mdx b/uk/basic/field/lookup.mdx
index b57cca63..290b9210 100644
--- a/uk/basic/field/lookup.mdx
+++ b/uk/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ description: "Отримуйте значення Полів із пов’яз
Виберіть Поле, значення якого потрібно отримувати з вихідної Таблиці, наприклад дату народження автора, номер телефону клієнта або ціну продукту.
+
+ Якщо зв’язок вказує на кілька записів, увімкніть **Видалити повторювані значення**: повторюване значення залишиться лише в місці першої появи.
+
## Автоматична синхронізація
diff --git a/uk/basic/table/import.mdx b/uk/basic/table/import.mdx
index c6970058..9887a1eb 100644
--- a/uk/basic/table/import.mdx
+++ b/uk/basic/table/import.mdx
@@ -21,6 +21,9 @@ description: "Імпортуйте дані CSV, Excel, Airtable або Google S
Виберіть файл CSV або Excel для імпорту. Розмір файлу Excel не має перевищувати **5 МБ**.
+
+ Під час створення нової таблиці Teable пропонує **Імпортувати за допомогою ШІ** або **Імпортувати вручну**. Варіант зі ШІ з’являється, лише якщо в цій базі вам доступний AI Chat.
+
Перегляньте попередній результат після завантаження. Під час створення нової таблиці можна змінити типи полів. Під час додавання до наявної таблиці перевірте відповідність стовпців файлу цільовим полям.
@@ -43,6 +46,10 @@ description: "Імпортуйте дані CSV, Excel, Airtable або Google S
className="docs-screenshot"
/>
+Після завантаження файлу Teable пропонує **Оптимізувати й імпортувати за допомогою ШІ**. Варіант **Імпортувати за допомогою ШІ** передає файл до AI Chat: ШІ аналізує дані, коригує структуру таблиці, зв’язки та типи полів і виконує імпорт. Вікно імпорту закривається, натомість відкривається панель чату, тож ви бачите поступ і можете скеровувати результат відповідями. Це витрачає кредити ШІ та потребує права створювати таблиці, тому пропозиція з’являється лише тоді, коли вам доступний AI Chat, і ніколи не з’являється під час імпорту в наявну таблицю.
+
+Натомість **Імпортувати вручну** відкриває попередній перегляд полів, а кнопка **Назад** у ньому повертає до цього вибору.
+
Після завантаження Teable прогнозує типи полів за першими 5 000 рядками даних. Перед імпортом їх можна змінити.
血缘账本只记录功能上线之后产生的任务,并保留 7 天。更早的任务只能看到队列信息,没有传播图。worker 还未生成计算计划的 seed 任务只会显示触发字段。如果这次变更本来就没有下游计算需要写入,图中会直接说明:没有公式、查找、汇总或链接标题依赖这些字段。
@@ -64,9 +64,9 @@ description: "在管理面板中监控 BullMQ 投递和计算任务积压。"
| 异常类型 | 操作 | 效果 |
| --- | --- | --- |
-| **死信** | **恢复整个问题组** | 把该组当前的全部死信一次性恢复到持久队列并重新投递。其他问题组不受影响。 |
-| **死信** | **丢弃问题组**(在 **更多操作** 菜单中) | 永久删除该组中的死信,删除后不可恢复、不可重放,只在确认无需重放时使用。 |
-| **执行超时** | **重新唤醒最近一条超时** | 为组内最新任务重新唤醒队列,由 Worker 接管执行。 |
+| **死信** | **恢复整个问题组** | 把该组当前的全部死信一次性恢复到持久队列并重新投递。其他问题组不受影响。|
+| **死信** | **丢弃问题组**(在 **更多操作** 菜单中) | 永久删除该组中的死信,删除后不可恢复、不可重放,只在确认无需重放时使用。|
+| **执行超时** | **重新唤醒最近一条超时** | 为组内最新任务重新唤醒队列,由 Worker 接管执行。|
恢复完成后,Teable 会给出恢复条数、新入队与已在队列的条数,以及已投递和延迟投递的条数。随后 Worker 会按现有的并发和任务分片限制逐步消费这一组任务。
@@ -90,7 +90,9 @@ description: "在管理面板中监控 BullMQ 投递和计算任务积压。"
暂停只会阻止 Worker 领取该空间新的计算任务。已经在执行的任务不会被中断,匹配到的任务会一直等待,不会被丢弃。
-暂停到期后会自动解除,最长 2 小时。处理时间超出时,可以在本页面重新暂停续期。列表会显示所有生效中的暂停,包括操作人、原因和自动恢复时间,并显示这些暂停当前积压了多少待处理任务,便于判断恢复后会释放多少工作量。需要提前解除时,点击对应行的 **恢复** 并确认。
+暂停到期后会自动解除,最长 2 小时。处理时间超出时,点击这条暂停所在行的 **延长时间**,选择继续暂停多久并确认。新的自动恢复时间从确认那一刻开始计算,同样最长 2 小时,中间不会出现恢复窗口。
+
+列表会显示所有生效中的暂停,包括操作人、原因和自动恢复时间,并显示这些暂停当前积压了多少待处理任务,便于判断恢复后会释放多少工作量。需要提前解除时,点击对应行的 **恢复** 并确认。
## 调整并发
@@ -98,8 +100,8 @@ description: "在管理面板中监控 BullMQ 投递和计算任务积压。"
| 控件 | 限制的内容 |
| --- | --- |
-| **每进程并发** | 每个 Worker 进程同时处理多少个计算任务。 |
-| **每 Base claim 上限** | 同一个 Base(**每 Base**)以及其中同一张来源表(**每种子表**)同时处理多少个计算任务。两者默认都是 2,可填 1 到 16。 |
+| **每进程并发** | 每个 Worker 进程同时处理多少个计算任务。|
+| **每 Base claim 上限** | 同一个 Base(**每 Base**)以及其中同一张来源表(**每种子表**)同时处理多少个计算任务。两者默认都是 2,可填 1 到 16。|
单个 Base 成为瓶颈时,调大 claim 上限;多个 Base 同时排队时,调大每进程并发。
diff --git a/zh/basic/admin-panel/table-query-ops.mdx b/zh/basic/admin-panel/table-query-ops.mdx
index 942d19c8..d5a5444c 100644
--- a/zh/basic/admin-panel/table-query-ops.mdx
+++ b/zh/basic/admin-panel/table-query-ops.mdx
@@ -21,22 +21,26 @@ description: "查看慢表的查询风险推荐,并确认要执行的数据库
| 板块 | 说明 |
| --- | --- |
-| **触发来源** | 推荐从哪里来:实际查询观测、保存的视图配置,或关联字段配置。来自保存的视图配置说明还没观测到慢查询,是配置本身有风险。 |
-| **访问路径** | 这张表被顺序扫描和索引扫描命中的次数对比。 |
-| **原因** | 可读的成因,例如表数据量大、筛选或排序字段上没有可用索引、排序开销高、已观测到超时等。 |
-| **查询结构** | 具体在筛选和排序哪些字段,以及各自使用的匹配方式。 |
-| **建议索引** | 推荐准备建索引的字段,以及给出的理由。 |
+| **触发来源** | 推荐从哪里来:实际查询观测、保存的视图配置,或关联字段配置。来自保存的视图配置说明还没观测到慢查询,是配置本身有风险。|
+| **访问路径** | 这张表被顺序扫描和索引扫描命中的次数对比。|
+| **原因** | 可读的成因,例如表数据量大、筛选或排序字段上没有可用索引、排序开销高、已观测到超时等。|
+| **查询结构** | 具体在筛选和排序哪些字段,以及各自使用的匹配方式。|
+| **建议索引** | 推荐准备建索引的字段,以及给出的理由。|
点击 **深度分析** 会打开分析工作台,并自动填入该表。
-当分析器观测到某张表存在大量子串搜索时,会针对整张表给出一条 **generated-text GIN** 推荐,而不是逐个字段建索引。这类推荐行会用 **创建搜索路径** 取代 **深度分析**,也不会出现 **添加索引**:搜索访问路径要在分析工作台里应用,并且需要先做一次 **EXPLAIN 样例搜索**。该表建好搜索路径后,这条推荐会自动关闭。
+当分析器观测到某张表存在大量子串搜索时,会针对整张表给出一条 **generated-text GIN** 推荐,而不是逐个字段建索引。这类推荐行会用 **创建搜索路径** 取代 **深度分析**,也不会出现 **添加索引**。该表建好搜索路径后,这条推荐会自动关闭。
+
+点击 **创建搜索路径** 会在当前页面弹窗中直接对该表做一次 dry-run,不需要跳转。弹窗会显示候选的索引提供方、覆盖字段数量、预估行数,以及启用前后的 `EXPLAIN` 成本。填写一个样例搜索词,长度不低于弹窗提示的最小字符数;这个词只用于校验,不会被保存。表较大时,还需要勾选维护窗口确认项。确认后,Teable 会再校验一次候选,然后启用搜索路径。
+
+如果分析没有产出候选,弹窗会说明原因,不会执行任何操作。宽表会被拒绝,因为 Teable 不会为它建立覆盖全部字段的搜索文档,换更长的搜索词也没有用。此时点击 **按指定字段分析**,到分析工作台只分析用户真正会搜索的字段。
旁边还有两个标签:
| 标签 | 展示内容 |
| --- | --- |
-| **热点表** | 最繁忙的表,包含请求数、慢查询、超时和最长查询耗时。 |
-| **任务** | Teable 创建的修复任务,包含状态、尝试次数、执行 worker 和最后一次错误。 |
+| **热点表** | 最繁忙的表,包含请求数、慢查询、超时和最长查询耗时。|
+| **任务** | Teable 创建的修复任务,包含状态、尝试次数、执行 worker 和最后一次错误。|
当配置问题拖住整个流程时,列表上方会出现提示横幅:已配置搜索访问路径但运行时开关未开启;部分表的访问路径处于 stale 或待重建状态,这些表的搜索已静默退回更慢的 `ILIKE` 扫描;或者最老的排队任务等待过久,说明可能没有 worker 在消费。先处理横幅中提示的问题,再去处理下方的推荐。
@@ -46,12 +50,12 @@ description: "查看慢表的查询风险推荐,并确认要执行的数据库
| 徽章 | 含义 |
| --- | --- |
-| **需人工确认** | 只能由管理员确认执行。 |
-| **影子 · 可自动** | 推荐已满足自动执行条件,但自动执行未开启,因此没有做任何变更。 |
-| **自动执行中** / **已自动执行** | 自动执行已接受该推荐并完成变更。 |
-| **验收失败 · 退避中** | 自动变更没有通过验收,Teable 会等待更久再重试该表。 |
-| **冷却中** | 同一范围刚刚变更过,系统暂时不会再动它。 |
-| **暂不执行** / **自动执行未生效** | 计划依据或表的规模没有达到自动执行的标准。 |
+| **需人工确认** | 只能由管理员确认执行。|
+| **影子 · 可自动** | 推荐已满足自动执行条件,但自动执行未开启,因此没有做任何变更。|
+| **自动执行中** / **已自动执行** | 自动执行已接受该推荐并完成变更。|
+| **验收失败 · 退避中** | 自动变更没有通过验收,Teable 会等待更久再重试该表。|
+| **冷却中** | 同一范围刚刚变更过,系统暂时不会再动它。|
+| **暂不执行** / **自动执行未生效** | 计划依据或表的规模没有达到自动执行的标准。|
默认情况下,Teable 只记录决策并生成推荐和任务记录,不会自动改动数据库。自动执行需要通过 `V2_TABLE_QUERY_OPS_AUTO_ACCEPT=auto` 主动开启,且只对执行计划显示明显成本改善的小表生效,其余都会等待管理员确认。
@@ -69,8 +73,8 @@ description: "查看慢表的查询风险推荐,并确认要执行的数据库
| 分析类型 | 适用场景 |
| --- | --- |
-| **查询与索引** | 查找查询风险和可能的索引优化建议。 |
-| **子串搜索** | 判断子串搜索访问路径能否在保持匹配行为不变的情况下加快包含搜索。 |
+| **查询与索引** | 查找查询风险和可能的索引优化建议。|
+| **子串搜索** | 判断子串搜索访问路径能否在保持匹配行为不变的情况下加快包含搜索。|
选择 **表**、**Base** 或 **Space**,填写对应 ID,再选择分析类型。如果已经知道哪张表较慢,建议从 **表** 开始分析。
diff --git a/zh/basic/admin-panel/template-admin.mdx b/zh/basic/admin-panel/template-admin.mdx
index f9e734dc..5d29d762 100644
--- a/zh/basic/admin-panel/template-admin.mdx
+++ b/zh/basic/admin-panel/template-admin.mdx
@@ -22,7 +22,7 @@ description: "管理组织的业务模版,帮助成员快速应用预配置的
* **新建模板**:创建新的模板配置
* **发布快照**:捕获源数据库的当前状态。必须先发布快照才能上架模板。
-* **状态 (上架)**:控制模板是否在模板中心可见。上架前需要填写名称、描述并发布快照。
+* **状态(上架)**:控制模板是否在模板中心可见。上架前需要填写名称、描述并发布快照。
* **置顶**:将重要模板固定在列表顶部
* **删除**:移除模板配置
diff --git a/zh/basic/ai/app-builder.mdx b/zh/basic/ai/app-builder.mdx
index 1b073306..dd8f1f10 100644
--- a/zh/basic/ai/app-builder.mdx
+++ b/zh/basic/ai/app-builder.mdx
@@ -32,7 +32,7 @@ Teable 应用构建器 (App Builder) 允许您在不编写代码的情况下,
className="docs-screenshot"
/>
-### 1. 对话界面 (AI 驱动)
+### 1. 对话界面(AI 驱动)
这是您的应用控制中心。
- **自然语言编辑**:描述您想做的更改,如 *"把标题改成蓝色"* 或 *"添加一个新记录提交表单"*。
@@ -56,7 +56,7 @@ Teable 应用构建器 (App Builder) 允许您在不编写代码的情况下,
从数据读取或由应用计算的动态文本不能直接编辑。请选中对应元素,再通过对话描述修改要求。AI 生成期间,元素选择和文本编辑会暂停。按 `Esc` 可以退出任一模式。
-### 3. 开发者模式 (代码编辑器)
+### 3. 开发者模式(代码编辑器)
为了实现无限的定制能力,我们提供了直接访问代码的权限。
@@ -149,8 +149,8 @@ Teable 会新建一个私有仓库,把当前应用代码提交到 `main` 分
| 方向 | 行为 |
| --- | --- |
-| 应用 → GitHub | 每个新的应用版本都会推送到仓库的 `main` 分支。 |
-| GitHub → 应用 | 推送到 `main` 的提交会生成一个新的应用版本,对话面板会给出一条同步说明,正在打开的预览会加载新代码。 |
+| 应用 → GitHub | 每个新的应用版本都会推送到仓库的 `main` 分支。|
+| GitHub → 应用 | 推送到 `main` 的提交会生成一个新的应用版本,对话面板会给出一条同步说明,正在打开的预览会加载新代码。|
环境变量文件不会被推送,详见下面的「环境变量与本地开发」。
@@ -158,11 +158,11 @@ Teable 会新建一个私有仓库,把当前应用代码提交到 `main` 分
| 状态 | 含义 | 处理方式 |
| --- | --- | --- |
-| **已同步** | 仓库内容与最新的应用版本一致。 | 无需处理。 |
-| **同步中** | 有一次推送正在进行。 | 等待即可,面板会自动更新。 |
-| **冲突** | `main` 分支上有 Teable 不知道的提交,无法自动合并。 | 在 GitHub 上合并 `teable-sync` 分支,见下文。 |
-| **已暂停** | GitHub App 被卸载或被暂停,同步已停止。 | 面板会说明具体原因。解除暂停后同步会自动恢复。 |
-| **错误** | 上一次同步失败。 | 在面板中查看原因,点击 **重试**。 |
+| **已同步** | 仓库内容与最新的应用版本一致。| 无需处理。|
+| **同步中** | 有一次推送正在进行。| 等待即可,面板会自动更新。|
+| **冲突** | `main` 分支上有 Teable 不知道的提交,无法自动合并。| 在 GitHub 上合并 `teable-sync` 分支,见下文。|
+| **已暂停** | GitHub App 被卸载或被暂停,同步已停止。| 面板会说明具体原因。解除暂停后同步会自动恢复。|
+| **错误** | 上一次同步失败。| 在面板中查看原因,点击 **重试**。|
### 处理冲突
@@ -245,9 +245,9 @@ Teable 不会强制覆盖你的分支。两边历史分叉时,Teable 把最新
| 设置项 | 作用 |
| --- | --- |
-| **网站图标** | 浏览器标签页显示的图标。支持上传 PNG、JPEG、WebP、SVG 或 ICO 文件,大小不超过 5MB,建议尺寸 32×32。移除已上传的文件即可恢复默认的 Teable 图标。 |
-| **标题** | 站点标题,最多 120 个字符。 |
-| **描述** | 页面元信息中的站点描述,最多 500 个字符。 |
+| **网站图标** | 浏览器标签页显示的图标。支持上传 PNG、JPEG、WebP、SVG 或 ICO 文件,大小不超过 5MB,建议尺寸 32×32。移除已上传的文件即可恢复默认的 Teable 图标。|
+| **标题** | 站点标题,最多 120 个字符。|
+| **描述** | 页面元信息中的站点描述,最多 500 个字符。|
留空的字段会保留应用构建器生成的原值。保存后改动会应用到应用预览环境;已发布应用需要重新发布后才会生效。
@@ -286,12 +286,12 @@ Teable 自动跟踪每一次部署。
如果您的自定义代码导致构建错误,部署将会失败。
-- Teable 在错误日志旁提供了一个 **Auto-fix (自动修复)** 按钮。
+- Teable 在错误日志旁提供了一个 **Auto-fix(自动修复)** 按钮。
- 点击它,AI 将分析编译错误并自动修补代码以解决问题。
### 删除应用
-要删除应用,请点击顶部的 **设置** (齿轮图标) 按钮,然后选择 **删除**。
+要删除应用,请点击顶部的 **设置**(齿轮图标) 按钮,然后选择 **删除**。
## 最佳实践
diff --git a/zh/basic/authority-matrix.mdx b/zh/basic/authority-matrix.mdx
index e16e9a11..6809ead2 100644
--- a/zh/basic/authority-matrix.mdx
+++ b/zh/basic/authority-matrix.mdx
@@ -14,11 +14,11 @@ description: "在同一个数据库中为不同团队设置访问范围,让成
| 场景 | 示例 |
| --- | --- |
-| 按部门分配访问范围 | 销售团队可以维护客户记录,财务团队只能查看账单相关字段。 |
-| 按负责人限制记录 | 销售代表只能查看和更新负责人是自己的记录。 |
-| 限制数据录入权限 | 成员可以创建新记录,但不能编辑或删除已有记录。 |
-| 在共享数据库中保护敏感字段 | 成员可以查看订单记录,但看不到支付方式或成本字段。 |
-| 控制应用和工作流入口 | 角色只能打开指定应用或工作流,未授权节点不会显示。 |
+| 按部门分配访问范围 | 销售团队可以维护客户记录,财务团队只能查看账单相关字段。|
+| 按负责人限制记录 | 销售代表只能查看和更新负责人是自己的记录。|
+| 限制数据录入权限 | 成员可以创建新记录,但不能编辑或删除已有记录。|
+| 在共享数据库中保护敏感字段 | 成员可以查看订单记录,但看不到支付方式或成本字段。|
+| 控制应用和工作流入口 | 角色只能打开指定应用或工作流,未授权节点不会显示。|
## 权限如何生效
@@ -48,10 +48,10 @@ description: "在同一个数据库中为不同团队设置访问范围,让成
| 节点类型 | 可配置权限 |
| --- | --- |
-| 表格 | 选择 `可编辑` 或 `无权限`。设置为 `可编辑` 后,可以继续配置表格内的详细权限。 |
-| 应用 | 选择 `可访问` 或 `无权限`,控制这个角色能否打开该应用。 |
-| 工作流 | 选择 `可访问` 或 `无权限`,控制这个角色能否打开该工作流。 |
-| 文件夹 | 文件夹用于展示层级。如果角色不能访问文件夹下的任何节点,该文件夹会自动隐藏。 |
+| 表格 | 选择 `可编辑` 或 `无权限`。设置为 `可编辑` 后,可以继续配置表格内的详细权限。|
+| 应用 | 选择 `可访问` 或 `无权限`,控制这个角色能否打开该应用。|
+| 工作流 | 选择 `可访问` 或 `无权限`,控制这个角色能否打开该工作流。|
+| 文件夹 | 文件夹用于展示层级。如果角色不能访问文件夹下的任何节点,该文件夹会自动隐藏。|
如果要配置表格内的视图、记录、字段等详细权限,需要先将该表格设置为 `可编辑`。对某个角色来说,处于 `无权限` 状态的表格不会显示。
@@ -61,10 +61,10 @@ description: "在同一个数据库中为不同团队设置访问范围,让成
| 权限区域 | 控制内容 |
| --- | --- |
-| 视图权限 | 控制角色能否创建、更新、删除视图,以及可以查看 `所有视图` 还是只能查看 `特定视图`。 |
-| 记录权限 | 控制角色能否创建、更新、删除、评论、复制记录。可见记录可以是 `所有记录`,也可以限制为符合筛选条件的记录。 |
-| 字段权限 | 控制角色能否查看、更新或创建指定字段的值。主字段必须保持可见。 |
-| 导入/导出权限 | 控制角色能否向表格导入数据,或导出表格数据。 |
+| 视图权限 | 控制角色能否创建、更新、删除视图,以及可以查看 `所有视图` 还是只能查看 `特定视图`。|
+| 记录权限 | 控制角色能否创建、更新、删除、评论、复制记录。可见记录可以是 `所有记录`,也可以限制为符合筛选条件的记录。|
+| 字段权限 | 控制角色能否查看、更新或创建指定字段的值。主字段必须保持可见。|
+| 导入/导出权限 | 控制角色能否向表格导入数据,或导出表格数据。|
需要先启用权限矩阵,角色权限才会生效。
@@ -44,9 +44,9 @@ description: "为销售团队配置权限矩阵角色,处理共享数据、按
| 节点 | 设置 |
| --- | --- |
-| 客户信息 | 将表格设置为 `可编辑`。保留记录和字段权限,让该角色可以查看客户数据。 |
-| 销售订单 | 将表格设置为 `可编辑`。保留记录和字段权限,让该角色可以查看销售情况。 |
-| 产品信息 | 将表格设置为 `可编辑`,然后在记录权限中只允许 `查看记录` 和 `对记录进行评论`。 |
+| 客户信息 | 将表格设置为 `可编辑`。保留记录和字段权限,让该角色可以查看客户数据。|
+| 销售订单 | 将表格设置为 `可编辑`。保留记录和字段权限,让该角色可以查看销售情况。|
+| 产品信息 | 将表格设置为 `可编辑`,然后在记录权限中只允许 `查看记录` 和 `对记录进行评论`。|
按需设置排序字段、排序方式和显示记录数量。
+
+ 打开 **去除重复值**,重复出现的内容只保留第一次出现的那一个。去重在筛选、排序和记录数量限制之后执行,因此限制的仍然是匹配到的记录数,而不是去重后的值数量。
+
筛选条件至少需要配置一个。多个条件可以选择“所有条件满足(AND)”或“任一条件满足(OR)”。
diff --git a/zh/basic/field/formula/cheat-sheet.mdx b/zh/basic/field/formula/cheat-sheet.mdx
index 3a0dda7a..4782adc7 100644
--- a/zh/basic/field/formula/cheat-sheet.mdx
+++ b/zh/basic/field/formula/cheat-sheet.mdx
@@ -13,24 +13,24 @@ mode: "wide"
| 函数名称 | 描述 | 输入 | 输出 | 示例 |
| --------- | -------------------------------------------------------------- | ------------------------- | ------ | -------------------------------------------------------------------------------------- |
| SUM | 将数字加在一起。相当于 number1 + number2 + ... | `number1, [number2, ...]` | Number | `SUM(100, 200, 300) => 600` |
-| AVERAGE | 返回数字的平均值。 | `number1, [number2, ...]` | Number | `AVERAGE(100, 200, 300) => 200` |
-| MAX | 返回给定数字中的最大值。 | `number1, [number2, ...]` | Number | `MAX(100, 200, 300) => 300` |
-| MIN | 返回给定数字中的最小值。 | `number1, [number2, ...]` | Number | `MIN(100, 200, 300) => 100` |
-| ROUND | 按 `precision` 指定的小数位数四舍五入。 | `value, [precision]` | Number | `ROUND(1.99, 0) => 2` `ROUND(16.8, -1) => 20` |
-| ROUNDUP | 总是向上四舍五入,即远离零。 | `value, [precision]` | Number | `ROUNDUP(1.1, 0) => 2` `ROUNDUP(-1.1, 0) => -2` |
-| ROUNDDOWN | 总是向下四舍五入,即朝向零。 | `value, [precision]` | Number | `ROUNDDOWN(1.9, 0) => 1` `ROUNDDOWN(-1.9, 0) => -1` |
-| CEILING | 返回大于或等于该值的最接近的整数倍数。 | `value, [significance]` | Number | `CEILING(2.49) => 3` `CEILING(2.49, 1) => 2.5` |
-| FLOOR | 返回小于或等于该值的最接近的整数倍数。 | `value, [significance]` | Number | `FLOOR(2.49) => 2` `FLOOR(2.49, 1) => 2.4` |
-| EVEN | 返回大于或等于指定值的最小偶数。 | `value` | Number | `EVEN(0.1) => 2` `EVEN(-0.1) => -2` |
-| ODD | 将正值四舍五入到最接近的奇数,将负值四舍五入到最接近的奇数。 | `value` | Number | `ODD(0.1) => 1` `ODD(-0.1) => -1` |
-| INT | 返回数值的整数部分,向负无穷取整。 | `value` | Number | `INT(1.9) => 1` `INT(-1.9) => -2` |
-| ABS | 返回绝对值。 | `value` | Number | `ABS(-1) => 1` |
-| SQRT | 返回非负数的平方根。 | `value` | Number | `SQRT(4) => 2` |
-| POWER | 计算指定的基数到指定的功率。 | `value` | Number | `POWER(2) => 4` |
-| EXP | 计算欧拉数(e)的指定次幂。 | `value` | Number | `EXP(0) => 1` `EXP(1) => 2.718` |
-| LOG | 按指定基数计算值的对数。如果未指定,基数默认为 10。 | `value, [base=10]` | Number | `LOG(100) => 2` `LOG(1024, 2) => 10` |
-| MOD | 返回将第一个参数除以第二个后的余数。 | `value, divisor` | Number | `MOD(9, 2) => 1` `MOD(9, 3) => 0` |
-| VALUE | 将文本字符串转换为数字。 | `text` | Number | `VALUE("$1,000,000") => 1000000` |
+| AVERAGE | 返回数字的平均值。| `number1, [number2, ...]` | Number | `AVERAGE(100, 200, 300) => 200` |
+| MAX | 返回给定数字中的最大值。| `number1, [number2, ...]` | Number | `MAX(100, 200, 300) => 300` |
+| MIN | 返回给定数字中的最小值。| `number1, [number2, ...]` | Number | `MIN(100, 200, 300) => 100` |
+| ROUND | 按 `precision` 指定的小数位数四舍五入。| `value, [precision]` | Number | `ROUND(1.99, 0) => 2` `ROUND(16.8, -1) => 20` |
+| ROUNDUP | 总是向上四舍五入,即远离零。| `value, [precision]` | Number | `ROUNDUP(1.1, 0) => 2` `ROUNDUP(-1.1, 0) => -2` |
+| ROUNDDOWN | 总是向下四舍五入,即朝向零。| `value, [precision]` | Number | `ROUNDDOWN(1.9, 0) => 1` `ROUNDDOWN(-1.9, 0) => -1` |
+| CEILING | 返回大于或等于该值的最接近的整数倍数。| `value, [significance]` | Number | `CEILING(2.49) => 3` `CEILING(2.49, 1) => 2.5` |
+| FLOOR | 返回小于或等于该值的最接近的整数倍数。| `value, [significance]` | Number | `FLOOR(2.49) => 2` `FLOOR(2.49, 1) => 2.4` |
+| EVEN | 返回大于或等于指定值的最小偶数。| `value` | Number | `EVEN(0.1) => 2` `EVEN(-0.1) => -2` |
+| ODD | 将正值四舍五入到最接近的奇数,将负值四舍五入到最接近的奇数。| `value` | Number | `ODD(0.1) => 1` `ODD(-0.1) => -1` |
+| INT | 返回数值的整数部分,向负无穷取整。| `value` | Number | `INT(1.9) => 1` `INT(-1.9) => -2` |
+| ABS | 返回绝对值。| `value` | Number | `ABS(-1) => 1` |
+| SQRT | 返回非负数的平方根。| `value` | Number | `SQRT(4) => 2` |
+| POWER | 计算指定的基数到指定的功率。| `value` | Number | `POWER(2) => 4` |
+| EXP | 计算欧拉数(e)的指定次幂。| `value` | Number | `EXP(0) => 1` `EXP(1) => 2.718` |
+| LOG | 按指定基数计算值的对数。如果未指定,基数默认为 10。| `value, [base=10]` | Number | `LOG(100) => 2` `LOG(1024, 2) => 10` |
+| MOD | 返回将第一个参数除以第二个后的余数。| `value, divisor` | Number | `MOD(9, 2) => 1` `MOD(9, 3) => 0` |
+| VALUE | 将文本字符串转换为数字。| `text` | Number | `VALUE("$1,000,000") => 1000000` |
@@ -40,23 +40,23 @@ mode: "wide"
| 函数名称 | 描述 | 输入 | 输出 | 示例 |
| ---------------------- | ------------------------------------------------------------ | -------------------------------------------------- | ------------- | --------------------------------------------------------------------------- |
-| CONCATENATE | 连接多种值类型参数为单一文本值。 | `text1, [text2, ...]` | Text | `CONCATENATE("Hello ", "Teable") => Hello Teable` |
-| FIND | 在指定文本中查找子字符串的位置。如果未找到子字符串,则结果为 0。 | `stringToFind, whereToSearch, [startFromPosition]` | Number | `FIND("Teable", "Hello Teable") => 7` |
-| SEARCH | 在指定文本中查找子字符串的位置。与 `FIND` 类似,但未找到子字符串时返回空值。 | `stringToFind, whereToSearch, [startFromPosition]` | Text or Empty | `SEARCH("Teable", "Hello Teable") => 7` |
-| MID | 提取从指定位置开始的指定数量的子字符串。 | `text, whereToStart, count` | Text | `MID("Hello Teable", 6, 6) => "Teable"` |
-| LEFT | 提取字符串开始的指定数量的字符。 | `text, count` | Text | `LEFT("2023-09-06", 4) => "2023"` |
-| RIGHT | 提取字符串结束的指定数量的字符。 | `text, count` | Text | `RIGHT("2023-09-06", 5) => "09-06"` |
-| REPLACE | 用替换文本替换从开始字符开始的指定数量的字符。 | `text, whereToStart, count, replacement` | Text | `REPLACE("Hello Table", 7, 5, "Teable") => "Hello Teable"` |
-| REGEXP\_REPLACE | 使用替换文本替换匹配正则表达式的所有子字符串。 | `text, regular_expression, replacement` | Text | `REGEXP_REPLACE("Hello Table", "H.* ", "") => "Teable"` |
-| SUBSTITUTE | 用新文本替换旧文本。可以指定索引号来替换旧文本的特定出现。如果未指定索引号,则将替换旧文本的所有出现。 | `text, oldText, newText, [index]` | Text | `SUBSTITUTE("Hello Table", "Table", "Teable") => "Hello Teable"` |
-| TEXTBEFORE | 返回指定分隔符之前的文本内容。 | `text, delimiter` | Text | `TEXTBEFORE("20, 04, 79", ",") => "20"` |
-| TEXTSPLIT | 按指定分隔符拆分文本,并返回多个文本值。 | `text, delimiter` | Array | `TEXTSPLIT("20, 04, 79", ",") => ["20", " 04", " 79"]` |
-| LOWER | 将字符串转为小写。 | `text` | Text | `LOWER("Hello Teable") => "hello teable"` |
-| UPPER | 将字符串转为大写。 | `text` | Text | `UPPER("Hello Teable") => "HELLO TEABLE"` |
-| REPT | 将字符串重复指定的次数。 | `text, number` | Text | `REPT("Hello!") => "Hello!Hello!Hello!"` |
-| TRIM | 去除字符串开始和结束的空白字符。 | `text` | Text | `TRIM(" Hello ") => "Hello"` |
-| LEN | 计算字符串的字符数。 | `text` | Number | `LEN("Hello") => 5` |
-| T | 如果参数是文本,则返回该参数,否则返回空。 | `value` | Text or Empty | T("Hello") => "Hello"
T(100) => null
|
+| CONCATENATE | 连接多种值类型参数为单一文本值。| `text1, [text2, ...]` | Text | `CONCATENATE("Hello ", "Teable") => Hello Teable` |
+| FIND | 在指定文本中查找子字符串的位置。如果未找到子字符串,则结果为 0。| `stringToFind, whereToSearch, [startFromPosition]` | Number | `FIND("Teable", "Hello Teable") => 7` |
+| SEARCH | 在指定文本中查找子字符串的位置。与 `FIND` 类似,但未找到子字符串时返回空值。| `stringToFind, whereToSearch, [startFromPosition]` | Text or Empty | `SEARCH("Teable", "Hello Teable") => 7` |
+| MID | 提取从指定位置开始的指定数量的子字符串。| `text, whereToStart, count` | Text | `MID("Hello Teable", 6, 6) => "Teable"` |
+| LEFT | 提取字符串开始的指定数量的字符。| `text, count` | Text | `LEFT("2023-09-06", 4) => "2023"` |
+| RIGHT | 提取字符串结束的指定数量的字符。| `text, count` | Text | `RIGHT("2023-09-06", 5) => "09-06"` |
+| REPLACE | 用替换文本替换从开始字符开始的指定数量的字符。| `text, whereToStart, count, replacement` | Text | `REPLACE("Hello Table", 7, 5, "Teable") => "Hello Teable"` |
+| REGEXP\_REPLACE | 使用替换文本替换匹配正则表达式的所有子字符串。| `text, regular_expression, replacement` | Text | `REGEXP_REPLACE("Hello Table", "H.* ", "") => "Teable"` |
+| SUBSTITUTE | 用新文本替换旧文本。可以指定索引号来替换旧文本的特定出现。如果未指定索引号,则将替换旧文本的所有出现。| `text, oldText, newText, [index]` | Text | `SUBSTITUTE("Hello Table", "Table", "Teable") => "Hello Teable"` |
+| TEXTBEFORE | 返回指定分隔符之前的文本内容。| `text, delimiter` | Text | `TEXTBEFORE("20, 04, 79", ",") => "20"` |
+| TEXTSPLIT | 按指定分隔符拆分文本,并返回多个文本值。| `text, delimiter` | Array | `TEXTSPLIT("20, 04, 79", ",") => ["20", " 04", " 79"]` |
+| LOWER | 将字符串转为小写。| `text` | Text | `LOWER("Hello Teable") => "hello teable"` |
+| UPPER | 将字符串转为大写。| `text` | Text | `UPPER("Hello Teable") => "HELLO TEABLE"` |
+| REPT | 将字符串重复指定的次数。| `text, number` | Text | `REPT("Hello!") => "Hello!Hello!Hello!"` |
+| TRIM | 去除字符串开始和结束的空白字符。| `text` | Text | `TRIM(" Hello ") => "Hello"` |
+| LEN | 计算字符串的字符数。| `text` | Number | `LEN("Hello") => 5` |
+| T | 如果参数是文本,则返回该参数,否则返回空。| `value` | Text or Empty | T("Hello") => "Hello"
T(100) => null
|
| ENCODE\_URL\_COMPONENT | 为构造 URL 或 URI,把部分字符替换为编码等效项。不会编码以下字符:- \_ . \~ | `value` | Text | `ENCODE_URL_COMPONENT("Hello Teable") => "Hello%20Teable"` |
@@ -66,15 +66,15 @@ mode: "wide"
逻辑函数用于条件判断和逻辑运算,比如 `IF`、`AND`、`OR`。
| 函数名称 | 描述 | 输入 | 输出 | 示例 |
| --------- | ------------------------------------------------------------------------------------------ | --------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
-| IF | 如果逻辑参数为真,则返回 `value1`,否则返回 `value2`。也可用于嵌套判断和检查单元格是否为空。 | `logical, value1, value2` | String \| Number \| Boolean \| Datetime | `IF(2 > 1, "A", "B") => "A"` `IF(2 > 1, TRUE, FALSE) => TRUE` |
-| SWITCH | 根据输入表达式匹配一组可能的值,并返回对应结果。没有匹配项时,可以返回默认值。很多情况下可替代嵌套 `IF`。 | `expression, [pattern, result]..., [default]` | String \| Number \| Boolean \| Datetime | `SWITCH("B", "A", "Value A", "B", "Value B", "Default Value") => "Value B"` |
-| AND | 如果所有参数都为真,则返回真;否则返回假。 | `logical1, [logical2, ...]` | Boolean | `AND(1 < 2, 5 > 3) => true` `AND(1 < 2, 5 < 3) => false` |
-| OR | 如果任意一个参数为真,则返回真。 | `logical1, [logical2, ...]` | Boolean | `OR(1 < 2, 5 < 3) => true` `OR(1 > 2, 5 < 3) => false` |
-| XOR | 如果有奇数个参数为真,则返回真。 | `logical1, [logical2, ...]` | Boolean | `XOR(1 < 2, 5 < 3, 8 < 10) => false` `XOR(1 > 2, 5 < 3, 8 < 10) => true` |
-| NOT | 反转其参数的逻辑值。 | `boolean` | Boolean | `NOT(1 < 2) => false` `NOT(1 > 2) => true` |
-| BLANK | 返回一个空值,也可用于判断字段是否为空。 | `-` | null | `BLANK() => null` `IF({重量}=BLANK(), 1, 2) => 1` |
-| ERROR | 返回一个错误值。 | `message` | Error | `IF(2 > 3, "Yes", ERROR("Calculation")) => "#ERROR: Calculation"` |
-| IS\_ERROR | 如果表达式引起错误,则返回真。 | `expr` | Boolean | `IS_ERROR(ERROR()) => true` |
+| IF | 如果逻辑参数为真,则返回 `value1`,否则返回 `value2`。也可用于嵌套判断和检查单元格是否为空。| `logical, value1, value2` | String \| Number \| Boolean \| Datetime | `IF(2 > 1, "A", "B") => "A"` `IF(2 > 1, TRUE, FALSE) => TRUE` |
+| SWITCH | 根据输入表达式匹配一组可能的值,并返回对应结果。没有匹配项时,可以返回默认值。很多情况下可替代嵌套 `IF`。| `expression, [pattern, result]..., [default]` | String \| Number \| Boolean \| Datetime | `SWITCH("B", "A", "Value A", "B", "Value B", "Default Value") => "Value B"` |
+| AND | 如果所有参数都为真,则返回真;否则返回假。| `logical1, [logical2, ...]` | Boolean | `AND(1 < 2, 5 > 3) => true` `AND(1 < 2, 5 < 3) => false` |
+| OR | 如果任意一个参数为真,则返回真。| `logical1, [logical2, ...]` | Boolean | `OR(1 < 2, 5 < 3) => true` `OR(1 > 2, 5 < 3) => false` |
+| XOR | 如果有奇数个参数为真,则返回真。| `logical1, [logical2, ...]` | Boolean | `XOR(1 < 2, 5 < 3, 8 < 10) => false` `XOR(1 > 2, 5 < 3, 8 < 10) => true` |
+| NOT | 反转其参数的逻辑值。| `boolean` | Boolean | `NOT(1 < 2) => false` `NOT(1 > 2) => true` |
+| BLANK | 返回一个空值,也可用于判断字段是否为空。| `-` | null | `BLANK() => null` `IF({重量}=BLANK(), 1, 2) => 1` |
+| ERROR | 返回一个错误值。| `message` | Error | `IF(2 > 3, "Yes", ERROR("Calculation")) => "#ERROR: Calculation"` |
+| IS\_ERROR | 如果表达式引起错误,则返回真。| `expr` | Boolean | `IS_ERROR(ERROR()) => true` |
@@ -84,23 +84,23 @@ mode: "wide"
| 函数名称 | 描述 | 输入 | 输出 | 示例 |
| -------------- | ------------------------------------------------------ | ---------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
-| TODAY | 返回当前日期。 | `-` | Datetime | `TODAY() => "2023-09-08 00:00"` |
-| NOW | 返回当前的日期和时间。 | `-` | Datetime | `NOW() => "2023-09-08 16:50"` |
-| YEAR | 返回日期的四位数字年份。 | `date` | Number | `YEAR("2023-09-08") => 2023` |
-| MONTH | 返回日期的月份,作为1(1月)到12(12月)之间的数字。 | `date` | Number | `MONTH("2023-09-08") => 9` |
-| WEEKNUM | 返回年份中的周数。 | `date` | Number | `WEEKNUM("2023-09-08") => 36` |
-| WEEKDAY | 返回一周中的第几天,结果为0到6之间的整数。可以提供第二个参数(“星期日”或“星期一”)指定一周从哪一天开始。 | `date, [startDayOfWeek]` | Number | `WEEKDAY("2023-09-08", "Monday") => 5` |
-| DAY | 返回日期的月份中的日期,作为1-31之间的数字。 | `date` | Number | `DAY("2023-09-08") => 8` |
-| HOUR | 返回日期的小时数,作为0(12:00am)到23(11:00pm)之间的数字。 | `date` | Number | `HOUR("2023-09-08 16:50") => 16` |
-| MINUTE | 返回日期的分钟,作为0到59之间的整数。 | `date` | Number | `MINUTE("2023-09-08 16:50") => 50` |
-| SECOND | 返回日期的秒数,作为0到59之间的整数。 | `date` | Number | `SECOND("2023-09-08 16:50:30") => 30` |
-| FROMNOW | 计算当前日期与另一个日期之间的天数。 | `date, unit` | Number | `FROMNOW({Date}, "day") => 25` |
-| TONOW | 计算当前日期与另一个日期之间的天数。 | `date, unit` | Number | `TONOW({Date}, "day") => 25` |
-| DATETIME\_DIFF | 返回指定单位的日期时间差异,默认单位是秒。 | `date1, date2, [unit]` | Number | `DATETIME_DIFF("2022-08-01", "2023-09-08", "day") => 403` |
-| WORKDAY | 返回从开始日期起算的工作日,不包括指定假期。 | `date, count, [holidayStr]` | Datetime | `WORKDAY("2023-09-08", 200) => "2024-06-14 00:00:00"` |
-| WORKDAY\_DIFF | 返回 `date1` 和 `date2` 之间的工作日数。工作日不包括周末和可选假日列表,假日列表使用 ISO 日期并用逗号分隔。 | `date1, date2, [holidayStr]` | Number | `WORKDAY_DIFF("2023-06-18", "2023-10-01") => 75` |
-| IS\_SAME | 按指定单位比较两个日期是否相同。相同返回 `true`,否则返回 `false`。 | `date1, date2, [unit]` | Boolean | `IS_SAME("2023-09-08", "2023-09-10") => false` |
-| IS\_AFTER | 判断 `date1` 是否晚于 `date2`。如果是,返回 `true`,否则返回 `false`。 | `date1, date2, [unit]` | Boolean | `IS_AFTER("2023-09-10", "2023-09-08") => true` `IS_AFTER("2023-09-10", "2023-09-08", "month") => false` |
+| TODAY | 返回当前日期。| `-` | Datetime | `TODAY() => "2023-09-08 00:00"` |
+| NOW | 返回当前的日期和时间。| `-` | Datetime | `NOW() => "2023-09-08 16:50"` |
+| YEAR | 返回日期的四位数字年份。| `date` | Number | `YEAR("2023-09-08") => 2023` |
+| MONTH | 返回日期的月份,作为 1(1 月)到 12(12 月)之间的数字。| `date` | Number | `MONTH("2023-09-08") => 9` |
+| WEEKNUM | 返回年份中的周数。| `date` | Number | `WEEKNUM("2023-09-08") => 36` |
+| WEEKDAY | 返回一周中的第几天,结果为 0 到 6 之间的整数。可以提供第二个参数(“星期日”或“星期一”)指定一周从哪一天开始。| `date, [startDayOfWeek]` | Number | `WEEKDAY("2023-09-08", "Monday") => 5` |
+| DAY | 返回日期的月份中的日期,作为 1-31 之间的数字。| `date` | Number | `DAY("2023-09-08") => 8` |
+| HOUR | 返回日期的小时数,作为 0(12:00am)到 23(11:00pm)之间的数字。| `date` | Number | `HOUR("2023-09-08 16:50") => 16` |
+| MINUTE | 返回日期的分钟,作为 0 到 59 之间的整数。| `date` | Number | `MINUTE("2023-09-08 16:50") => 50` |
+| SECOND | 返回日期的秒数,作为 0 到 59 之间的整数。| `date` | Number | `SECOND("2023-09-08 16:50:30") => 30` |
+| FROMNOW | 计算当前日期与另一个日期之间的天数。| `date, unit` | Number | `FROMNOW({Date}, "day") => 25` |
+| TONOW | 计算当前日期与另一个日期之间的天数。| `date, unit` | Number | `TONOW({Date}, "day") => 25` |
+| DATETIME\_DIFF | 返回指定单位的日期时间差异,默认单位是秒。| `date1, date2, [unit]` | Number | `DATETIME_DIFF("2022-08-01", "2023-09-08", "day") => 403` |
+| WORKDAY | 返回从开始日期起算的工作日,不包括指定假期。| `date, count, [holidayStr]` | Datetime | `WORKDAY("2023-09-08", 200) => "2024-06-14 00:00:00"` |
+| WORKDAY\_DIFF | 返回 `date1` 和 `date2` 之间的工作日数。工作日不包括周末和可选假日列表,假日列表使用 ISO 日期并用逗号分隔。| `date1, date2, [holidayStr]` | Number | `WORKDAY_DIFF("2023-06-18", "2023-10-01") => 75` |
+| IS\_SAME | 按指定单位比较两个日期是否相同。相同返回 `true`,否则返回 `false`。| `date1, date2, [unit]` | Boolean | `IS_SAME("2023-09-08", "2023-09-10") => false` |
+| IS\_AFTER | 判断 `date1` 是否晚于 `date2`。如果是,返回 `true`,否则返回 `false`。| `date1, date2, [unit]` | Boolean | `IS_AFTER("2023-09-10", "2023-09-08") => true` `IS_AFTER("2023-09-10", "2023-09-08", "month") => false` |
## 数组和其他函数
@@ -108,11 +108,11 @@ mode: "wide"
| 函数名称 | 描述 | 输入 | 输出 | 示例 |
| -------------- | ------------------------------------------- | ----------------------- | ------ | ----------------------------------------------------------------------------- |
-| COUNTALL | 返回所有元素的数量,包括文本和空白。 | `value1, [value2, ...]` | Number | `COUNTALL(100, 200, "", "Teable", TRUE()) => 5` |
-| COUNTA | 返回非空值的数量。此函数既计算数字又计算文本值。 | `value1, [value2, ...]` | Number | `COUNTA(100, 200, 300, "", "Teable", TRUE) => 4` |
-| COUNT | 返回数字项的数量。 | `value1, [value2, ...]` | Number | `COUNT(100, 200, 300, "", "Teable", TRUE) => 3` |
-| ARRAY\_JOIN | 使用分隔符将汇总项数组连接成一个字符串。 | `array, [separator]` | String | `ARRAY_JOIN(["Tom", "Jerry", "Mike"], "; ") => "Tom; Jerry; Mike"` |
-| ARRAY\_UNIQUE | 返回数组中仅有的唯一项。 | `array` | Array | `ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]` |
-| ARRAY\_FLATTEN | 展平嵌套数组,让所有项目成为单个数组的元素。 | `array` | Array | `ARRAY_FLATTEN([1, 2, " ", 3, true], ["ABC"]) => [1, 2, 3, " ", true, "ABC"]` |
-| ARRAY\_COMPACT | 从数组中删除空字符串和 `null` 值。保留 `false` 和包含空白字符的字符串。 | `array` | Array | `ARRAY_COMPACT([1, 2, 3, "", null, "ABC"]) => [1, 2, 3, "ABC"]` |
-| RECORD\_ID | 返回当前记录的 ID。 | `-` | String | `RECORD_ID() => "recxxxxxx"` |
+| COUNTALL | 返回所有元素的数量,包括文本和空白。| `value1, [value2, ...]` | Number | `COUNTALL(100, 200, "", "Teable", TRUE()) => 5` |
+| COUNTA | 返回非空值的数量。此函数既计算数字又计算文本值。| `value1, [value2, ...]` | Number | `COUNTA(100, 200, 300, "", "Teable", TRUE) => 4` |
+| COUNT | 返回数字项的数量。| `value1, [value2, ...]` | Number | `COUNT(100, 200, 300, "", "Teable", TRUE) => 3` |
+| ARRAY\_JOIN | 使用分隔符将汇总项数组连接成一个字符串。| `array, [separator]` | String | `ARRAY_JOIN(["Tom", "Jerry", "Mike"], "; ") => "Tom; Jerry; Mike"` |
+| ARRAY\_UNIQUE | 返回数组中仅有的唯一项。| `array` | Array | `ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]` |
+| ARRAY\_FLATTEN | 展平嵌套数组,让所有项目成为单个数组的元素。| `array` | Array | `ARRAY_FLATTEN([1, 2, " ", 3, true], ["ABC"]) => [1, 2, 3, " ", true, "ABC"]` |
+| ARRAY\_COMPACT | 从数组中删除空字符串和 `null` 值。保留 `false` 和包含空白字符的字符串。| `array` | Array | `ARRAY_COMPACT([1, 2, 3, "", null, "ABC"]) => [1, 2, 3, "ABC"]` |
+| RECORD\_ID | 返回当前记录的 ID。| `-` | String | `RECORD_ID() => "recxxxxxx"` |
diff --git a/zh/basic/field/link.mdx b/zh/basic/field/link.mdx
index 5f5bd7a8..2e400f7c 100644
--- a/zh/basic/field/link.mdx
+++ b/zh/basic/field/link.mdx
@@ -45,10 +45,10 @@ description: "用于在不同数据表之间建立关系,并在当前记录中
| 关系模型 | 业务场景示例 | 配置方式 |
| :--- | :--- | :--- |
-| **一对一 (1:1)** | **员工 - 档案**
一个员工只能有一份档案,一份档案也只属于一个员工 | ☐ 允许多选
☐ 允许重复值
*(两个开关均关闭)* |
-| **一对多 (1:N)** | **部门 - 员工**
一个部门包含多个员工,但一个员工只属于一个部门 | ☑ 允许多选
☐ 允许重复值
*(仅开启允许多选)* |
-| **多对一 (N:1)** | **任务 - 项目**
多个任务属于同一个项目,但一个任务只能属于一个项目 | ☐ 允许多选
☑ 允许重复值
*(仅开启允许重复值)* |
-| **多对多 (N:N)** | **学生 - 课程**
一个学生选修多门课,一门课也有多个学生上 | ☑ 允许多选
☑ 允许重复值
*(两个开关均开启)* |
+| **一对一 (1:1)** | **员工 - 档案**
一个员工只能有一份档案,一份档案也只属于一个员工 | ☐ 允许多选
☐ 允许重复值
*(两个开关均关闭)* |
+| **一对多 (1:N)** | **部门 - 员工**
一个部门包含多个员工,但一个员工只属于一个部门 | ☑ 允许多选
☐ 允许重复值
*(仅开启允许多选)* |
+| **多对一 (N:1)** | **任务 - 项目**
多个任务属于同一个项目,但一个任务只能属于一个项目 | ☐ 允许多选
☑ 允许重复值
*(仅开启允许重复值)* |
+| **多对多 (N:N)** | **学生 - 课程**
一个学生选修多门课,一门课也有多个学生上 | ☑ 允许多选
☑ 允许重复值
*(两个开关均开启)* |
## 常见用法
diff --git a/zh/basic/field/lookup.mdx b/zh/basic/field/lookup.mdx
index cb9f6e2e..b0f835ed 100644
--- a/zh/basic/field/lookup.mdx
+++ b/zh/basic/field/lookup.mdx
@@ -29,6 +29,9 @@ description: "用于通过已有的关联关系,从关联表中引用字段值
选择要从源表中获取的字段,比如作者的出生日期、客户的电话或商品价格。
+
+ 如果关联的是多条记录,可以打开 **去除重复值**,重复出现的内容只保留第一次出现的那一个。
+
## 自动同步
diff --git a/zh/basic/record.mdx b/zh/basic/record.mdx
index 69127244..cb9cd1e2 100644
--- a/zh/basic/record.mdx
+++ b/zh/basic/record.mdx
@@ -67,10 +67,10 @@ description: "记录是表格中存储数据的基本单元。表格视图中,
| 功能 | 说明 |
| --- | --- |
-| 评论 | 每条记录都有独立评论区,可以讨论具体数据、@提及同事或补充上下文。详情请看[评论](/zh/basic/record/comment)。 |
-| 记录历史 | Teable 会记录记录变更,便于回溯修改内容。详情请看[记录历史](/zh/basic/record/record-history)。 |
-| 归档与回收站 | 把已完结的记录移出表格,或恢复误删的记录。详情请看[归档与回收站](/zh/basic/record/archive-trash)。 |
-| 关联记录 | 通过 **关联** 字段,可以把不同表中的记录连接起来。详情请看[关联字段](/zh/basic/field/link)。 |
+| 评论 | 每条记录都有独立评论区,可以讨论具体数据、@提及同事或补充上下文。详情请看[评论](/zh/basic/record/comment)。|
+| 记录历史 | Teable 会记录记录变更,便于回溯修改内容。详情请看[记录历史](/zh/basic/record/record-history)。|
+| 归档与回收站 | 把已完结的记录移出表格,或恢复误删的记录。详情请看[归档与回收站](/zh/basic/record/archive-trash)。|
+| 关联记录 | 通过 **关联** 字段,可以把不同表中的记录连接起来。详情请看[关联字段](/zh/basic/field/link)。|
## 注意事项
diff --git a/zh/basic/space/base-invite.mdx b/zh/basic/space/base-invite.mdx
index cdd31d1b..273e0543 100644
--- a/zh/basic/space/base-invite.mdx
+++ b/zh/basic/space/base-invite.mdx
@@ -39,10 +39,10 @@ description: '允许您以"数据库"为最小单位进行权限管控,您可
| 角色 | 权限说明 |
| ---- | -------- |
-| 可搭建 | 可以进行创建动作,修改表格结构、编辑自动化、开启权限矩阵。 |
-| 可编辑 | 可以对数据进行修改。 |
-| 可评论 | 可以对记录进行评论,不能修改数据。 |
-| 可查看 | 可以查看,不可评论。 |
+| 可搭建 | 可以进行创建动作,修改表格结构、编辑自动化、开启权限矩阵。|
+| 可编辑 | 可以对数据进行修改。|
+| 可评论 | 可以对记录进行评论,不能修改数据。|
+| 可查看 | 可以查看,不可评论。|
## 使用场景
diff --git a/zh/basic/space/im-integration.mdx b/zh/basic/space/im-integration.mdx
index 4a865cc7..b7a10880 100644
--- a/zh/basic/space/im-integration.mdx
+++ b/zh/basic/space/im-integration.mdx
@@ -12,7 +12,7 @@ description: "在空间设置中配置 Feishu 自建应用,让机器人可以
该设置是空间级配置。不同空间可以使用不同的飞书自建应用凭证。
-## 一、 创建飞书自建应用
+## 一、创建飞书自建应用
1. 打开 [飞书开放平台](https://open.feishu.cn/app)
2. 创建企业自建应用
@@ -20,7 +20,7 @@ description: "在空间设置中配置 Feishu 自建应用,让机器人可以
启用机器人后,后续才能把该应用添加到飞书群组中接收消息。
-## 二、 填写应用凭证
+## 二、填写应用凭证
在飞书应用的 **凭证与基础信息** 页面获取:
@@ -31,13 +31,13 @@ description: "在空间设置中配置 Feishu 自建应用,让机器人可以
已保存过配置后,点击 **测试连接** 可以不重新填写 App Secret;系统会复用已保存的密钥。只有需要保存新的凭证或更换密钥时,才需要重新填写 App Secret 并保存。
-## 三、 导入权限范围
+## 三、导入权限范围
在飞书应用的 **权限管理** 中,使用 **批量导入/导出权限** 导入页面中提供的 Scopes JSON。
这些权限用于让机器人处理所在会话中发给机器人的消息、访问必要的会话信息,并以机器人身份发送回复。导入后请按飞书页面要求提交或保存权限变更。
-## 四、 配置事件订阅
+## 四、配置事件订阅
在飞书应用的 **事件与回调** → **事件配置** 中配置事件订阅:
@@ -56,25 +56,25 @@ im.message.receive_v1
该事件用于让 Teable 接收机器人收到的消息。
-## 五、 发布应用并设置可用范围
+## 五、发布应用并设置可用范围
在飞书应用的 **版本管理与发布** 中创建新版本并发布应用。
发布时请确认 **可用范围** 设置为 **全员**,这样空间成员才能搜索并添加机器人。
-## 六、 测试连接
+## 六、测试连接
回到 Teable 的 **IM 集成** 页面,点击 **测试连接**。
测试通过后,将机器人添加到飞书群组,并在群内验证机器人是否能收到消息和响应。
-## 七、 消息内容支持
+## 七、消息内容支持
机器人可以处理飞书群组中的文字、图片、文件、音频、视频、表情和富文本消息。对于飞书卡片和分享类消息,它会提取其中可读的标题、正文和关键字段,作为 AI 对话上下文。
如果消息类型不在支持范围内,机器人只能看到不支持的占位内容。遇到这种情况,可以改用文字说明,或把相关文件、图片直接发给机器人。
-## 八、 常见排查
+## 八、常见排查
- **测试连接失败**:先确认 App ID 和 App Secret 是否来自同一个飞书应用。
- **群里无法使用机器人**:确认应用已发布,并且可用范围包含当前成员。
diff --git a/zh/basic/space/space-invite.mdx b/zh/basic/space/space-invite.mdx
index 6bc30dcc..fff6889d 100644
--- a/zh/basic/space/space-invite.mdx
+++ b/zh/basic/space/space-invite.mdx
@@ -68,11 +68,11 @@ description: "通过邮箱或者链接来邀请他人成为空间协作者"
| 角色 | 权限说明 |
| ---- | -------- |
-| 可管理 | 负责管理,拥有所有权限管理用户,包括表格、自动化、开启权限矩阵。 |
-| 可搭建 | 可以进行创建动作,修改表格结构、编辑自动化、开启权限矩阵。 |
-| 可编辑 | 可以对数据进行修改。 |
-| 可评论 | 可以对记录进行评论,不能修改数据。 |
-| 可查看 | 可以查看,不可评论。 |
+| 可管理 | 负责管理,拥有所有权限管理用户,包括表格、自动化、开启权限矩阵。|
+| 可搭建 | 可以进行创建动作,修改表格结构、编辑自动化、开启权限矩阵。|
+| 可编辑 | 可以对数据进行修改。|
+| 可评论 | 可以对记录进行评论,不能修改数据。|
+| 可查看 | 可以查看,不可评论。|
## 查看数据库权限
diff --git a/zh/basic/sso/feishu.mdx b/zh/basic/sso/feishu.mdx
index e5439907..d32ecdc1 100644
--- a/zh/basic/sso/feishu.mdx
+++ b/zh/basic/sso/feishu.mdx
@@ -31,7 +31,7 @@ description: "配置飞书作为 Teable 的 SSO 认证提供商"
4. 创建完成后,点击复制 **providerId**,稍后配置飞书应用时需要用到
diff --git a/zh/basic/table/import.mdx b/zh/basic/table/import.mdx
index b148ffca..44f817e9 100644
--- a/zh/basic/table/import.mdx
+++ b/zh/basic/table/import.mdx
@@ -21,6 +21,9 @@ Excel 文件大小限制为 **5MB**。如果您需要导入更大规模的数据
选择要导入的 CSV 或 Excel 文件。Excel 文件不要超过 **5MB**。
+
+ 创建新表格时,Teable 会提供 **使用 AI 导入** 和 **手动导入** 两种方式。只有当前数据库可以使用 AI 对话时,才会出现 AI 导入。
+
上传后检查预览结果。创建新表格时,可以调整字段类型;追加到已有表格时,需要确认文件列和目标字段的映射关系。
@@ -43,7 +46,11 @@ Excel 文件大小限制为 **5MB**。如果您需要导入更大规模的数据
className="docs-screenshot"
/>
-文件上传后,Teable 会根据前 5,000 行数据自动预测字段类型,您也可以按需调整。
+文件上传后,Teable 会给出 **使用 AI 优化并导入数据**。点击 **使用 AI 导入**,文件会交给 AI 对话:AI 分析数据,调整表格结构、关联和字段类型,并完成导入。此时导入弹窗关闭、对话面板打开,可以查看进度,也可以随时回复来调整结果。这会消耗 AI 积分,也需要创建表格的权限,因此只有可以使用 AI 对话时才会出现,导入到已有表格时不会出现。
+
+点击 **手动导入** 则进入字段预览;在预览界面点击 **返回**,可以回到这个选择。
+
+在预览中,Teable 会根据前 5,000 行数据自动预测字段类型,您也可以按需调整。
-## 2. 插件视图-Sheet表单
+## 2. 插件视图-Sheet 表单
-
+
## 3. [记录评论](https://help.teable.cn/ji-ben-gong-neng/ji-lu/ping-lun#zhu-yao-te-dian)
@@ -178,7 +178,7 @@ rss: true
### 5.2 从视图筛选记录
-* 全面的权限控制,不用担心因关联而意外显示数据! 控制从哪个视图关联记录;控制符合筛选条件的记录可以被链接;控制在关联选择列表中可以查看哪些字段。
+* 全面的权限控制,不用担心因关联而意外显示数据!控制从哪个视图关联记录;控制符合筛选条件的记录可以被链接;控制在关联选择列表中可以查看哪些字段。
* 编辑字段
* 更多配置
* 选择视图/配置筛选条件
@@ -295,8 +295,8 @@ Teable 新增了视图嵌入功能,并优化了共享设置:
## 1. 字段值验证规则增强
-* **唯一值校验约束:**新增字段唯一值验证功能,确保字段值在整个表格中唯一。
-* **非空验证:**增加了字段非空验证功能,防止关键信息缺失。
+* **唯一值校验约束:**新;增字段唯一值验证功能,确保字段值在整个表格中唯一。
+* **非空验证:**增;加了字段非空验证功能,防止关键信息缺失。
diff --git a/zh/changelog-2025.mdx b/zh/changelog-2025.mdx
index 3b572075..badff0f3 100644
--- a/zh/changelog-2025.mdx
+++ b/zh/changelog-2025.mdx
@@ -7,21 +7,21 @@ rss: true
# Teable 更新(付费功能)
## AI 数据库 Agent
-AI数据库Agent带来6大创新,彻底改变你用数据的方式:
-1. 对话生成数据库:再也不用为线索混乱发愁,Teable能自动识别情感、帮你写好CRM回复。
+AI 数据库 Agent 带来 6 大创新,彻底改变你用数据的方式:
+1. 对话生成数据库:再也不用为线索混乱发愁,Teable 能自动识别情感、帮你写好 CRM 回复。
-2. 对话生成应用:直接用数据库里的数据生成应用,比如几分钟就能把线索表变成落地页。和那些只能做静态应用的工具不同,Teable做出来的应用是真正跑在实时数据上的。
+2. 对话生成应用:直接用数据库里的数据生成应用,比如几分钟就能把线索表变成落地页。和那些只能做静态应用的工具不同,Teable 做出来的应用是真正跑在实时数据上的。
-4. 对话分析数据:直接问问题、看图表,数据洞察一秒到手,无需SQL、无需写代码。
+4. 对话分析数据:直接问问题、看图表,数据洞察一秒到手,无需 SQL、无需写代码。