@jasonwch/nodebb-plugin-meilisearch-r 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -28
- package/lib/alerts.js +24 -0
- package/lib/chat-search-global.js +221 -0
- package/lib/client.js +445 -0
- package/lib/constants.js +42 -0
- package/lib/defaults.js +73 -0
- package/lib/embedder.js +297 -0
- package/lib/hooks/messages.js +49 -0
- package/lib/hooks/posts.js +180 -0
- package/lib/hooks/topics.js +210 -0
- package/lib/pending-queue.js +69 -0
- package/lib/reindex.js +311 -0
- package/lib/routes.js +129 -0
- package/lib/search.js +230 -0
- package/lib/settings-helpers.js +15 -0
- package/lib/settings.js +119 -0
- package/lib/state.js +69 -0
- package/library.js +17 -1555
- package/package.json +1 -1
- package/static/languages/en-GB/meilisearch.json +112 -79
- package/static/languages/he/meilisearch.json +113 -0
- package/static/languages/pl/meilisearch.json +34 -1
- package/static/languages/zh-CN/meilisearch.json +34 -1
- package/static/lib/admin.js +317 -2
- package/static/templates/admin/plugins/meilisearch.tpl +289 -222
package/package.json
CHANGED
|
@@ -1,80 +1,113 @@
|
|
|
1
|
-
{
|
|
2
|
-
"admin.settings": "Meilisearch",
|
|
3
|
-
"admin.connection": "Connection settings",
|
|
4
|
-
"admin.host": "Meilisearch URL",
|
|
5
|
-
"admin.apiKey": "API Key",
|
|
6
|
-
"admin.healthCheckInterval": "Health check interval (in seconds)",
|
|
7
|
-
"admin.search": "Search options",
|
|
8
|
-
"admin.maxDocuments": "Max number of topics/posts returned",
|
|
9
|
-
"admin.globalChatSearchEnabled": "Global chat search",
|
|
10
|
-
"admin.globalChatSearchLimit": "Global chat search result fix limit at 200",
|
|
11
|
-
"admin.perRoomSearchLimit": "The limit above only applies to posts/topics. Per-chatroom search result fix limit at 100",
|
|
12
|
-
"chatSearch.room.self-chat": "Self chat",
|
|
13
|
-
"chatSearch.room.and-more-users": "%1 and %2 more users",
|
|
14
|
-
"chatSearch.client.placeholder": "Search messages...",
|
|
15
|
-
"chatSearch.client.searching": "Searching...",
|
|
16
|
-
"chatSearch.client.error": "Error",
|
|
17
|
-
"chatSearch.client.no-results": "No results found.",
|
|
18
|
-
"chatSearch.client.unknown-user": "Unknown",
|
|
19
|
-
"admin.searchMinTermLength": "Minimum search term length",
|
|
20
|
-
"admin.searchMinTermLengthHelp": "Queries in which every word is shorter than this (in characters) are skipped. Minimum 2. Dodges a NodeBB core highlight bug that surfaces on 1-character searches.",
|
|
21
|
-
"admin.rankingRules": "Ranking rules",
|
|
22
|
-
"admin.rankingRulesHelp": "In order to ensure relevant results, search responses are sorted based on a set of consecutive rules called ranking rules. For more information read the docs here:",
|
|
23
|
-
"admin.rankingRulesFormLabel": "Rule",
|
|
24
|
-
"admin.rankingRulesFormHelp": "Use the following syntax for custom rules: 'attribute:asc' or 'attribute:desc'. For more information read the documentation here:",
|
|
25
|
-
"admin.addRankingRule": "Add a ranking rule",
|
|
26
|
-
"admin.stopWords": "Stop words",
|
|
27
|
-
"admin.stopWordsHelp": "Stop words are stripped from a search query only when the query also contains at least one non-stop word. If the entire query consists of stop words, Meilisearch will still search using that term (it is not ignored). For more information on Meilisearch's stop word behavior, see:",
|
|
28
|
-
"admin.stopWordsFormLabel": "Stop word",
|
|
29
|
-
"admin.stopWordsFormHelp": "For more information read the documentation here:",
|
|
30
|
-
"admin.addStopWord": "Add a stop word",
|
|
31
|
-
"admin.synonyms": "Synonyms",
|
|
32
|
-
"admin.synonymsHelp": "Words that Meilisearch should consider as having equivalent meaning in order to make search results more relevant. For more information read the docs here:",
|
|
33
|
-
"admin.synonymsWordFormLabel": "Word",
|
|
34
|
-
"admin.synonymsSynonymsFormLabel": "Synonyms",
|
|
35
|
-
"admin.synonymsFormHelp": "Add synonyms as a comma separated list (eg. 'word,utterance,phrase')",
|
|
36
|
-
"admin.addSynonym": "Add a word with synonym",
|
|
37
|
-
"admin.typoTolerance": "Typo tolerance",
|
|
38
|
-
"admin.typoToleranceEnable": "Enable typo tolerance",
|
|
39
|
-
"admin.typoToleranceMinWordSizeOneTypo": "Minimum word size for one typo",
|
|
40
|
-
"admin.typoToleranceMinWordSizeTwoTypos": "Minimum word size for two typos",
|
|
41
|
-
"admin.typoToleranceDisableOnWords": "Disable typo tolerance on specified words",
|
|
42
|
-
"admin.typoToleranceDisableOnWordsHelp": "Typo tolerance is disabled only when one of these words is typed exactly in the search query; that query word will not match typo variants in the index. Note: searching a misspelling of a disabled word will still match the correctly-spelled document via tolerance. For more information see:",
|
|
43
|
-
"admin.typoToleranceDisableOnWordsFormLabel": "Typo-tolerance disabled word",
|
|
44
|
-
"admin.addTypoToleranceDisabledWord": "Add a typo-tolerance disabled word",
|
|
45
|
-
"admin.indexResult": "Index result",
|
|
46
|
-
"admin.indexAction": "Index action",
|
|
47
|
-
"admin.reindex": "Reindex",
|
|
48
|
-
"admin.forceReindex": "Force reindex (delete all documents)",
|
|
49
|
-
"admin.reindexHelp": "Index all posts and topics again, in case of a mismatch between Meilisearch and NodeBB. This can take a while depending on the number of posts and topics in your forum.",
|
|
50
|
-
"admin.confirmReindex": "Are you sure you want to start reindexing all posts and topics?<br>This operation can take a while.",
|
|
51
|
-
"admin.
|
|
52
|
-
"admin.
|
|
53
|
-
"admin.
|
|
54
|
-
"admin.
|
|
55
|
-
"admin.
|
|
56
|
-
"admin.
|
|
57
|
-
"admin.
|
|
58
|
-
"admin.
|
|
59
|
-
"admin.
|
|
60
|
-
"admin.
|
|
61
|
-
"admin.
|
|
62
|
-
"admin.
|
|
63
|
-
"admin.
|
|
64
|
-
"admin.
|
|
65
|
-
"admin.
|
|
66
|
-
"admin.
|
|
67
|
-
"admin.
|
|
68
|
-
"admin.
|
|
69
|
-
"admin.
|
|
70
|
-
"admin.
|
|
71
|
-
"admin.
|
|
72
|
-
"admin.
|
|
73
|
-
"admin.
|
|
74
|
-
"admin.
|
|
75
|
-
"admin.
|
|
76
|
-
"admin.
|
|
77
|
-
"admin.
|
|
78
|
-
"
|
|
79
|
-
"
|
|
1
|
+
{
|
|
2
|
+
"admin.settings": "Meilisearch",
|
|
3
|
+
"admin.connection": "Connection settings",
|
|
4
|
+
"admin.host": "Meilisearch URL",
|
|
5
|
+
"admin.apiKey": "API Key",
|
|
6
|
+
"admin.healthCheckInterval": "Health check interval (in seconds)",
|
|
7
|
+
"admin.search": "Search options",
|
|
8
|
+
"admin.maxDocuments": "Max number of topics/posts returned",
|
|
9
|
+
"admin.globalChatSearchEnabled": "Global chat search",
|
|
10
|
+
"admin.globalChatSearchLimit": "Global chat search result fix limit at 200",
|
|
11
|
+
"admin.perRoomSearchLimit": "The limit above only applies to posts/topics. Per-chatroom search result fix limit at 100",
|
|
12
|
+
"chatSearch.room.self-chat": "Self chat",
|
|
13
|
+
"chatSearch.room.and-more-users": "%1 and %2 more users",
|
|
14
|
+
"chatSearch.client.placeholder": "Search messages...",
|
|
15
|
+
"chatSearch.client.searching": "Searching...",
|
|
16
|
+
"chatSearch.client.error": "Error",
|
|
17
|
+
"chatSearch.client.no-results": "No results found.",
|
|
18
|
+
"chatSearch.client.unknown-user": "Unknown",
|
|
19
|
+
"admin.searchMinTermLength": "Minimum search term length",
|
|
20
|
+
"admin.searchMinTermLengthHelp": "Queries in which every word is shorter than this (in characters) are skipped. Minimum 2. Dodges a NodeBB core highlight bug that surfaces on 1-character searches.",
|
|
21
|
+
"admin.rankingRules": "Ranking rules",
|
|
22
|
+
"admin.rankingRulesHelp": "In order to ensure relevant results, search responses are sorted based on a set of consecutive rules called ranking rules. For more information read the docs here:",
|
|
23
|
+
"admin.rankingRulesFormLabel": "Rule",
|
|
24
|
+
"admin.rankingRulesFormHelp": "Use the following syntax for custom rules: 'attribute:asc' or 'attribute:desc'. For more information read the documentation here:",
|
|
25
|
+
"admin.addRankingRule": "Add a ranking rule",
|
|
26
|
+
"admin.stopWords": "Stop words",
|
|
27
|
+
"admin.stopWordsHelp": "Stop words are stripped from a search query only when the query also contains at least one non-stop word. If the entire query consists of stop words, Meilisearch will still search using that term (it is not ignored). For more information on Meilisearch's stop word behavior, see:",
|
|
28
|
+
"admin.stopWordsFormLabel": "Stop word",
|
|
29
|
+
"admin.stopWordsFormHelp": "For more information read the documentation here:",
|
|
30
|
+
"admin.addStopWord": "Add a stop word",
|
|
31
|
+
"admin.synonyms": "Synonyms",
|
|
32
|
+
"admin.synonymsHelp": "Words that Meilisearch should consider as having equivalent meaning in order to make search results more relevant. For more information read the docs here:",
|
|
33
|
+
"admin.synonymsWordFormLabel": "Word",
|
|
34
|
+
"admin.synonymsSynonymsFormLabel": "Synonyms",
|
|
35
|
+
"admin.synonymsFormHelp": "Add synonyms as a comma separated list (eg. 'word,utterance,phrase')",
|
|
36
|
+
"admin.addSynonym": "Add a word with synonym",
|
|
37
|
+
"admin.typoTolerance": "Typo tolerance",
|
|
38
|
+
"admin.typoToleranceEnable": "Enable typo tolerance",
|
|
39
|
+
"admin.typoToleranceMinWordSizeOneTypo": "Minimum word size for one typo",
|
|
40
|
+
"admin.typoToleranceMinWordSizeTwoTypos": "Minimum word size for two typos",
|
|
41
|
+
"admin.typoToleranceDisableOnWords": "Disable typo tolerance on specified words",
|
|
42
|
+
"admin.typoToleranceDisableOnWordsHelp": "Typo tolerance is disabled only when one of these words is typed exactly in the search query; that query word will not match typo variants in the index. Note: searching a misspelling of a disabled word will still match the correctly-spelled document via tolerance. For more information see:",
|
|
43
|
+
"admin.typoToleranceDisableOnWordsFormLabel": "Typo-tolerance disabled word",
|
|
44
|
+
"admin.addTypoToleranceDisabledWord": "Add a typo-tolerance disabled word",
|
|
45
|
+
"admin.indexResult": "Index result",
|
|
46
|
+
"admin.indexAction": "Index action",
|
|
47
|
+
"admin.reindex": "Reindex",
|
|
48
|
+
"admin.forceReindex": "Force reindex (delete all documents)",
|
|
49
|
+
"admin.reindexHelp": "Index all posts and topics again, in case of a mismatch between Meilisearch and NodeBB. This can take a while depending on the number of posts and topics in your forum.",
|
|
50
|
+
"admin.confirmReindex": "Are you sure you want to start reindexing all posts and topics?<br>This operation can take a while.",
|
|
51
|
+
"admin.confirmSemanticSave": "This changes the semantic search provider, credentials, model, URL, or dimensions.<br><br><strong>Meilisearch will re-embed every existing document through your embedding API the next time it applies this - this can incur real API cost.</strong><br><br>Save anyway?",
|
|
52
|
+
"admin.reindexPostsProgress": "Reindexing posts...",
|
|
53
|
+
"admin.reindexTopicsProgress": "Reindexing topics...",
|
|
54
|
+
"admin.reindexMessagesProgress": "Reindexing chat messages...",
|
|
55
|
+
"admin.edit": "edit",
|
|
56
|
+
"admin.delete": "delete",
|
|
57
|
+
"admin.lastReindex": "Last reindex",
|
|
58
|
+
"admin.lastReindexNever": "Never",
|
|
59
|
+
"admin.lastReindexDate": "Finished",
|
|
60
|
+
"admin.lastReindexSuccess": "Success",
|
|
61
|
+
"admin.lastReindexFailed": "Failed",
|
|
62
|
+
"admin.lastReindexTopics": "Topics",
|
|
63
|
+
"admin.lastReindexPosts": "Posts",
|
|
64
|
+
"admin.lastReindexMessages": "Chat messages",
|
|
65
|
+
"admin.lastReindexSkippedDeletedTopics": "Skipped (deleted topics)",
|
|
66
|
+
"admin.lastReindexSkippedDeletedPosts": "Skipped (deleted posts)",
|
|
67
|
+
"admin.lastReindexSkippedDeletedMessages": "Skipped (deleted messages)",
|
|
68
|
+
"admin.lastReindexSkippedSystemMessages": "Skipped (system messages)",
|
|
69
|
+
"admin.lastReindexSkippedOrphanMessages": "Skipped (orphaned — room deleted)",
|
|
70
|
+
"admin.lastReindexError": "Error",
|
|
71
|
+
"admin.reindexingCompleted": "Reindexing Completed",
|
|
72
|
+
"admin.reindexingCompletedBody": "Reindexing completed successfully",
|
|
73
|
+
"admin.settingsSaved": "Settings Saved",
|
|
74
|
+
"admin.settingsSavedBody": "Your settings have been saved successfully.",
|
|
75
|
+
"admin.meiliUnreachable": "MeiliSearch Unreachable",
|
|
76
|
+
"admin.meiliUnreachableBody": "Settings were saved, but MeiliSearch is unreachable. Index settings will apply when connection is restored.",
|
|
77
|
+
"admin.indexingStarted": "Indexing started",
|
|
78
|
+
"admin.indexingStartedBody": "Reindexing is running in the background. Progress will appear below.",
|
|
79
|
+
"similar-topics-header": "Your topic is similar to…",
|
|
80
|
+
"esc": "esc",
|
|
81
|
+
"admin.semanticSearch": "Semantic search (AI)",
|
|
82
|
+
"admin.semanticSearchHelp": "Adds meaning-based (vector/hybrid) search on top of regular keyword search, powered by Meilisearch embedders. Requires a Meilisearch instance that supports the embedders feature (v1.13+). Read more here:",
|
|
83
|
+
"admin.semanticSearchEnable": "Enable semantic search",
|
|
84
|
+
"admin.semanticSearchProvider": "Embedding provider",
|
|
85
|
+
"admin.semanticSearchProviderHelp": "Which service generates the vector embeddings for your content. OpenAI and Ollama require the corresponding service to be reachable from Meilisearch; Hugging Face embedding happens inside Meilisearch itself.",
|
|
86
|
+
"admin.semanticSearchLocal": "local",
|
|
87
|
+
"admin.semanticSearchCustomRest": "Custom REST endpoint",
|
|
88
|
+
"admin.semanticSearchApiKey": "API Key",
|
|
89
|
+
"admin.semanticSearchModel": "Model",
|
|
90
|
+
"admin.semanticSearchModelHelp": "Free text - type any model name/tag your provider supports. The dropdown only offers common suggestions.",
|
|
91
|
+
"admin.semanticSearchUrl": "URL",
|
|
92
|
+
"admin.semanticSearchUrlHelp": "Optional for OpenAI/Ollama, required for a custom REST endpoint. Use this to point an OpenAI-compatible provider (OpenRouter, Azure OpenAI, LocalAI, etc.) at its own embeddings endpoint instead of the provider's default - include the full path (e.g. .../v1/embeddings), not just the base API URL. Leave empty to use the provider's default endpoint.",
|
|
93
|
+
"admin.semanticSearchDimensions": "Embedding dimensions (optional)",
|
|
94
|
+
"admin.semanticSearchDimensionsHelp": "Leave empty to let Meilisearch detect this automatically. Required for some custom REST endpoints.",
|
|
95
|
+
"admin.semanticSearchRestRequest": "Request template (JSON)",
|
|
96
|
+
"admin.semanticSearchRestResponse": "Response template (JSON)",
|
|
97
|
+
"admin.semanticSearchRestHelp": "Use the literal tokens {{text}} and {{embedding}} where the input text and returned vector belong, matching your endpoint's request/response shape. Keep the \"{{..}}\" as the 2nd array item in both templates (as in the placeholders above) - it tells Meilisearch this endpoint can embed a batch of texts in one call, which it does during indexing. Removing it from only one of the two templates causes a \"response has a single embedding, but request has multiple texts to embed\" error.",
|
|
98
|
+
"admin.semanticSearchRatio": "Semantic ratio",
|
|
99
|
+
"admin.semanticSearchRatioHelp": "How much weight semantic (meaning-based) matches get versus keyword matches. 0 = keyword search only, 1 = semantic search only.",
|
|
100
|
+
"admin.semanticSearchScoreThreshold": "Minimum relevance score",
|
|
101
|
+
"admin.semanticSearchScoreThresholdHelp": "Meilisearch's vector search has no built-in cutoff - by default it returns its full result limit even when nothing is a good match, ranked but not filtered. This drops hits scoring below the threshold (0 = no filtering/original behavior, 1 = only near-perfect matches). If unrelated results are showing up in the results, raise this.",
|
|
102
|
+
"admin.semanticSearchSaveNotice": "Changing the provider, credentials, model, or dimensions above re-embeds every document via your embedding API the next time settings are saved. Toggling the ratio alone does not.",
|
|
103
|
+
"admin.semanticForceReindexCostNotice": "Semantic search is enabled: force reindex deletes every document and re-embeds all of them from scratch via your embedding API. This can incur real API cost - a regular (non-forced) reindex does not re-embed unchanged content.",
|
|
104
|
+
"admin.meilisearchError": "Meilisearch error",
|
|
105
|
+
"admin.semanticEmbedderFailed": "Embedder update failed",
|
|
106
|
+
"admin.ollamaTesting": "Testing Ollama reachability...",
|
|
107
|
+
"admin.ollamaUnreachableBody": "Ollama is not reachable from this NodeBB (probe URL: <code>%1</code>; error: %2). If you are sure the Ollama is up and reachable from Meilisearch instance, click Confirm to save anyway.",
|
|
108
|
+
"admin.ollamaReachable": "Ollama reachable (v%1)",
|
|
109
|
+
"admin.ollamaReachableNoVersion": "Ollama reachable",
|
|
110
|
+
"admin.semanticConfigInvalid": "Embedder config invalid",
|
|
111
|
+
"admin.semanticSearchDegraded": "Semantic search error",
|
|
112
|
+
"admin.semanticEmbedderDelayedFailed": "Embedder task failed after delay (background check)"
|
|
80
113
|
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"admin.settings": "Meilisearch",
|
|
3
|
+
"admin.connection": "הגדרות חיבור",
|
|
4
|
+
"admin.host": "כתובת URL של Meilisearch",
|
|
5
|
+
"admin.apiKey": "מפתח API",
|
|
6
|
+
"admin.healthCheckInterval": "מרווח בדיקת תקינות (בשניות)",
|
|
7
|
+
"admin.search": "אפשרויות חיפוש",
|
|
8
|
+
"admin.maxDocuments": "מספר מקסימלי של נושאים/פוסטים שיוחזרו",
|
|
9
|
+
"admin.globalChatSearchEnabled": "חיפוש צ'אט גלובלי",
|
|
10
|
+
"admin.globalChatSearchLimit": "מגבלת תוצאות חיפוש צ'אט גלובלי קבועה על 200",
|
|
11
|
+
"admin.perRoomSearchLimit": "המגבלה שלמעלה חלה רק על פוסטים/נושאים. מגבלת תוצאות חיפוש לכל חדר-צ'אט קבועה על 100",
|
|
12
|
+
"chatSearch.room.self-chat": "צ'אט עצמי",
|
|
13
|
+
"chatSearch.room.and-more-users": "%1 ועוד %2 משתמשים",
|
|
14
|
+
"chatSearch.client.placeholder": "חיפוש הודעות...",
|
|
15
|
+
"chatSearch.client.searching": "מחפש...",
|
|
16
|
+
"chatSearch.client.error": "שגיאה",
|
|
17
|
+
"chatSearch.client.no-results": "לא נמצאו תוצאות.",
|
|
18
|
+
"chatSearch.client.unknown-user": "לא ידוע",
|
|
19
|
+
"admin.searchMinTermLength": "אורך מזערי למונח חיפוש",
|
|
20
|
+
"admin.searchMinTermLengthHelp": "שאילתות שבהן כל מילה קצרה מערך זה (בתווים) יידלגו. מינימום 2. פותר באג ליבה של NodeBB בהדגשת תוצאות המתרחש בחיפושים בני תו אחד.",
|
|
21
|
+
"admin.rankingRules": "כללי דירוג",
|
|
22
|
+
"admin.rankingRulesHelp": "כדי להבטיח תוצאות רלוונטיות, תשובות החיפוש ממוינות לפי סדרה של כללים עוקבים הנקראים כללי דירוג. למידע נוסף קראו את התיעוד כאן:",
|
|
23
|
+
"admin.rankingRulesFormLabel": "כלל",
|
|
24
|
+
"admin.rankingRulesFormHelp": "השתמשו בתחביר הבא עבור כללים מותאמים אישית: 'attribute:asc' או 'attribute:desc'. למידע נוסף קראו את התיעוד כאן:",
|
|
25
|
+
"admin.addRankingRule": "הוספת כלל דירוג",
|
|
26
|
+
"admin.stopWords": "מילות עצירה",
|
|
27
|
+
"admin.stopWordsHelp": "מילות עצירה מוסרות משאילתת חיפוש רק כאשר השאילתה מכילה גם לפחות מילה אחת שאינה מילת עצירה. אם כל השאילתה מורכבת ממילות עצירה, Meilisearch עדיין תחפש באמצעות מונח זה (הוא לא יתעלם ממנו). למידע נוסף על התנהגות מילות העצירה של Meilisearch, ראו:",
|
|
28
|
+
"admin.stopWordsFormLabel": "מילת עצירה",
|
|
29
|
+
"admin.stopWordsFormHelp": "למידע נוסף קראו את התיעוד כאן:",
|
|
30
|
+
"admin.addStopWord": "הוספת מילת עצירה",
|
|
31
|
+
"admin.synonyms": "מילים נרדפות",
|
|
32
|
+
"admin.synonymsHelp": "מילים ש-Meilisearch צריכה להתייחס אליהן כבעלות משמעות שווה כדי להפוך את תוצאות החיפוש לרלוונטיות יותר. למידע נוסף קראו את התיעוד כאן:",
|
|
33
|
+
"admin.synonymsWordFormLabel": "מילה",
|
|
34
|
+
"admin.synonymsSynonymsFormLabel": "מילים נרדפות",
|
|
35
|
+
"admin.synonymsFormHelp": "הוסיפו מילים נרדפות כרשימה מופרדת בפסיקים (לדוגמה: 'מילה,ביטוי,אמירה')",
|
|
36
|
+
"admin.addSynonym": "הוספת מילה עם נרדפת",
|
|
37
|
+
"admin.typoTolerance": "סובלנות לשגיאות כתיב",
|
|
38
|
+
"admin.typoToleranceEnable": "הפעלת סובלנות לשגיאות כתיב",
|
|
39
|
+
"admin.typoToleranceMinWordSizeOneTypo": "אורך מילה מזערי לשגיאת כתיב אחת",
|
|
40
|
+
"admin.typoToleranceMinWordSizeTwoTypos": "אורך מילה מזערי לשתי שגיאות כתיב",
|
|
41
|
+
"admin.typoToleranceDisableOnWords": "השבתת סובלנות לשגיאות כתיב על מילים מסוימות",
|
|
42
|
+
"admin.typoToleranceDisableOnWordsHelp": "סובלנות לשגיאות כתיב מושבתת רק כאשר אחת מהמילים הללו מוקלדת במדויק בשאילתת החיפוש; מילת שאילתה זו לא תתאים לגרסאות עם שגיאת כתיב באינדקס. שימו לב: חיפוש שגיאת כתיב של מילה מושבתת עדיין יתאים למסמך המאוית נכון בזכות הסובלנות. למידע נוסף ראו:",
|
|
43
|
+
"admin.typoToleranceDisableOnWordsFormLabel": "מילה עם סובלנות שגיאות כתיב מושבתת",
|
|
44
|
+
"admin.addTypoToleranceDisabledWord": "הוספת מילה עם סובלנות שגיאות כתיב מושבתת",
|
|
45
|
+
"admin.indexResult": "תוצאת אינדוקס",
|
|
46
|
+
"admin.indexAction": "פעולת אינדוקס",
|
|
47
|
+
"admin.reindex": "אינדוקס מחדש",
|
|
48
|
+
"admin.forceReindex": "כפיית אינדוקס מחדש (מחיקת כל המסמכים)",
|
|
49
|
+
"admin.reindexHelp": "אינדוקס מחדש של כל הפוסטים והנושאים, במקרה של אי-התאמה בין Meilisearch ל-NodeBB. פעולה זו עשויה לקחת זמן, בהתאם למספר הפוסטים והנושאים בפורום שלכם.",
|
|
50
|
+
"admin.confirmReindex": "האם אתם בטוחים שברצונכם להתחיל באינדוקס מחדש של כל הפוסטים והנושאים?<br>פעולה זו עשויה לקחת זמן.",
|
|
51
|
+
"admin.confirmSemanticSave": "פעולה זו משנה את ספק החיפוש הסמנטי, פרטי ההתחברות, המודל, ה-URL או המימדים.<br><br><strong>Meilisearch תטמיע מחדש כל מסמך קיים דרך ה-API של ההטמעה שלכם בפעם הבאה שזה יוחל - פעולה זו עלולה לגרור עלות API ממשית.</strong><br><br>לשמור בכל זאת?",
|
|
52
|
+
"admin.reindexPostsProgress": "מבצע אינדוקס מחדש לפוסטים...",
|
|
53
|
+
"admin.reindexTopicsProgress": "מבצע אינדוקס מחדש לנושאים...",
|
|
54
|
+
"admin.reindexMessagesProgress": "מבצע אינדוקס מחדש להודעות צ'אט...",
|
|
55
|
+
"admin.edit": "עריכה",
|
|
56
|
+
"admin.delete": "מחיקה",
|
|
57
|
+
"admin.lastReindex": "אינדוקס מחדש אחרון",
|
|
58
|
+
"admin.lastReindexNever": "אף פעם",
|
|
59
|
+
"admin.lastReindexDate": "הסתיים",
|
|
60
|
+
"admin.lastReindexSuccess": "הצלחה",
|
|
61
|
+
"admin.lastReindexFailed": "נכשל",
|
|
62
|
+
"admin.lastReindexTopics": "נושאים",
|
|
63
|
+
"admin.lastReindexPosts": "פוסטים",
|
|
64
|
+
"admin.lastReindexMessages": "הודעות צ'אט",
|
|
65
|
+
"admin.lastReindexSkippedDeletedTopics": "דולג (נושאים שנמחקו)",
|
|
66
|
+
"admin.lastReindexSkippedDeletedPosts": "דולג (פוסטים שנמחקו)",
|
|
67
|
+
"admin.lastReindexSkippedDeletedMessages": "דולג (הודעות שנמחקו)",
|
|
68
|
+
"admin.lastReindexSkippedSystemMessages": "דולג (הודעות מערכת)",
|
|
69
|
+
"admin.lastReindexSkippedOrphanMessages": "דולג (יתום — החדר נמחק)",
|
|
70
|
+
"admin.lastReindexError": "שגיאה",
|
|
71
|
+
"admin.reindexingCompleted": "אינדוקס מחדש הושלם",
|
|
72
|
+
"admin.reindexingCompletedBody": "האינדוקס מחדש הושלם בהצלחה",
|
|
73
|
+
"admin.settingsSaved": "ההגדרות נשמרו",
|
|
74
|
+
"admin.settingsSavedBody": "ההגדרות שלכם נשמרו בהצלחה.",
|
|
75
|
+
"admin.meiliUnreachable": "MeiliSearch אינו נגיש",
|
|
76
|
+
"admin.meiliUnreachableBody": "ההגדרות נשמרו, אך MeiliSearch אינו נגיש. הגדרות האינדקס יחולו כאשר החיבור ישוחזר.",
|
|
77
|
+
"admin.indexingStarted": "האינדוקס החל",
|
|
78
|
+
"admin.indexingStartedBody": "אינדוקס מחדש פועל ברקע. ההתקדמות תוצג למטה.",
|
|
79
|
+
"similar-topics-header": "הנושא שלך דומה ל…",
|
|
80
|
+
"esc": "esc",
|
|
81
|
+
"admin.semanticSearch": "חיפוש סמנטי (בינה מלאכותית)",
|
|
82
|
+
"admin.semanticSearchHelp": "מוסיף חיפוש מבוסס-משמעות (וקטורי/היברידי) בנוסף לחיפוש מילות מפתח רגיל, מופעל על ידי embedders של Meilisearch. דורש מופע Meilisearch התומך בתכונת embedders (v1.13 ומעלה). למידע נוסף קראו כאן:",
|
|
83
|
+
"admin.semanticSearchEnable": "הפעלת חיפוש סמנטי",
|
|
84
|
+
"admin.semanticSearchProvider": "ספק הטמעה (embedding)",
|
|
85
|
+
"admin.semanticSearchProviderHelp": "איזה שירות מייצר את וקטורי ההטמעה עבור התוכן שלכם. OpenAI ו-Ollama דורשים שהשירות המתאים יהיה נגיש מ-Meilisearch; הטמעת Hugging Face מתבצעת בתוך Meilisearch עצמה.",
|
|
86
|
+
"admin.semanticSearchLocal": "מקומי",
|
|
87
|
+
"admin.semanticSearchCustomRest": "נקודת קצה REST מותאמת אישית",
|
|
88
|
+
"admin.semanticSearchApiKey": "מפתח API",
|
|
89
|
+
"admin.semanticSearchModel": "מודל",
|
|
90
|
+
"admin.semanticSearchModelHelp": "טקסט חופשי - הקלידו כל שם/תג מודל שהספק שלכם תומך בו. התפריט הנפתח מציע רק הצעות נפוצות.",
|
|
91
|
+
"admin.semanticSearchUrl": "כתובת URL",
|
|
92
|
+
"admin.semanticSearchUrlHelp": "אופציונלי עבור OpenAI/Ollama, חובה עבור נקודת קצה REST מותאמת אישית. השתמשו בשדה זה כדי להפנות ספק תואם-OpenAI (כמו OpenRouter, Azure OpenAI, LocalAI וכו') לנקודת הקצה של embeddings שלו במקום לברירת המחדל של הספק - יש לכלול את הנתיב המלא (למשל .../v1/embeddings), לא רק את כתובת ה-API הבסיסית. השאירו ריק כדי להשתמש בנקודת הקצה המובנית של הספק.",
|
|
93
|
+
"admin.semanticSearchDimensions": "מימדי הטמעה (אופציונלי)",
|
|
94
|
+
"admin.semanticSearchDimensionsHelp": "השאירו ריק כדי לאפשר ל-Meilisearch לזהות זאת אוטומטית. נדרש עבור חלק מנקודות הקצה של REST מותאמות אישית.",
|
|
95
|
+
"admin.semanticSearchRestRequest": "תבנית בקשה (JSON)",
|
|
96
|
+
"admin.semanticSearchRestResponse": "תבנית תגובה (JSON)",
|
|
97
|
+
"admin.semanticSearchRestHelp": "השתמשו באסימונים המילוליים {{text}} ו-{{embedding}} במקום שבו הטקסט המוזן והווקטור המוחזר שייכים, בהתאם לצורת הבקשה/תגובה של נקודת הקצה שלכם. השאירו את \"{{..}}\" כפריט המערך השני בשתי התבניות (כמו בדוגמאות המוצגות למעלה) - זה מודיע ל-Meilisearch שנקודת הקצה יכולה להטמיע קבוצת טקסטים בקריאה אחת, מה שהיא עושה בזמן אינדוקס. הסרתו מתבנית אחת בלבד גורמת לשגיאה \"response has a single embedding, but request has multiple texts to embed\".",
|
|
98
|
+
"admin.semanticSearchRatio": "יחס סמנטי",
|
|
99
|
+
"admin.semanticSearchRatioHelp": "כמה משקל מקבלות התאמות סמנטיות (מבוססות-משמעות) לעומת התאמות מילות מפתח. 0 = חיפוש מילות מפתח בלבד, 1 = חיפוש סמנטי בלבד.",
|
|
100
|
+
"admin.semanticSearchScoreThreshold": "ציון רלוונטיות מזערי",
|
|
101
|
+
"admin.semanticSearchScoreThresholdHelp": "לחיפוש הווקטורי של Meilisearch אין סף מובנה - כברירת מחדל הוא מחזיר את כל מגבלת התוצאות גם כשאין שום התאמה טובה, ממוין אך לא מסונן. הגדרה זו מסירה תוצאות עם ציון נמוך מהסף (0 = בלי סינון/התנהגות מקורית, 1 = רק התאמות כמעט מושלמות). אם מופיעות תוצאות לא קשורות, העלו את הערך.",
|
|
102
|
+
"admin.semanticSearchSaveNotice": "שינוי הספק, פרטי ההתחברות, המודל או המימדים למעלה גורם להטמעה מחדש (re-embed) של כל מסמך דרך ה-API של ההטמעה בפעם הבאה שההגדרות יישמרו. הפעלה/כיבוי של היחס בלבד אינה גורמת לכך.",
|
|
103
|
+
"admin.semanticForceReindexCostNotice": "חיפוש סמנטי מופעל: כפיית אינדוקס מחדש מוחקת כל מסמך ומטמיעה מחדש את כולם מאפס דרך ה-API של ההטמעה שלכם. פעולה זו עלולה לגרור עלות API ממשית - אינדוקס מחדש רגיל (לא כפוי) אינו מטמיע מחדש תוכן שלא השתנה.",
|
|
104
|
+
"admin.meilisearchError": "שגיאת Meilisearch",
|
|
105
|
+
"admin.semanticEmbedderFailed": "עדכון ה-embedder נכשל",
|
|
106
|
+
"admin.ollamaTesting": "בודק נגישות Ollama...",
|
|
107
|
+
"admin.ollamaUnreachableBody": "Ollama אינו נגיש מ-NodeBB זה (כתובת בדיקה: <code>%1</code>; שגיאה: %2). אם אתם בטוחים ש-Ollama פועל ונגיש ממופע Meilisearch, לחצו על אישור כדי לשמור בכל זאת.",
|
|
108
|
+
"admin.ollamaReachable": "Ollama נגיש (v%1)",
|
|
109
|
+
"admin.ollamaReachableNoVersion": "Ollama נגיש",
|
|
110
|
+
"admin.semanticConfigInvalid": "תצורת embedder לא תקינה",
|
|
111
|
+
"admin.semanticSearchDegraded": "שגיאת חיפוש סמנטי",
|
|
112
|
+
"admin.semanticEmbedderDelayedFailed": "משימת embedder נכשלה לאחר השהיה (בדיקת רקע)"
|
|
113
|
+
}
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"admin.forceReindex": "Wymuś indeksowanie (usuń wszystkie dokumenty)",
|
|
49
49
|
"admin.reindexHelp": "Ponownie indeksuj wszystkie posty i tematy, w wypadku gdyby dane w Meilisearch nie zgadzały się z NodeBB. Ten proces może zająć dłuższy czas w zależności od ilości postów i tematów na forum.",
|
|
50
50
|
"admin.confirmReindex": "Czy jesteś pewien, że chcesz ponownie indeksować wszystkie posty i tematy?<br>To może zająć trochę czasu",
|
|
51
|
+
"admin.confirmSemanticSave": "To zmienia dostawcę wyszukiwania semantycznego, poświadczenia, model, URL lub wymiary.<br><br><strong>Meilisearch ponownie osadzi każdy istniejący dokument przez API osadzania przy następnym zastosowaniu — może to pociągnąć za sobą realny koszt API.</strong><br><br>Zapisać mimo to?",
|
|
51
52
|
"admin.reindexPostsProgress": "Ponowne indeksowanie postów...",
|
|
52
53
|
"admin.reindexTopicsProgress": "Ponowne indeksowanie tematów...",
|
|
53
54
|
"admin.reindexMessagesProgress": "Ponowne indeksowanie wiadomości czatu...",
|
|
@@ -76,5 +77,37 @@
|
|
|
76
77
|
"admin.indexingStarted": "Indeksowanie rozpoczęte",
|
|
77
78
|
"admin.indexingStartedBody": "Ponowne indeksowanie działa w tle. Postęp pojawi się poniżej.",
|
|
78
79
|
"similar-topics-header": "Twój temat jest podobny do…",
|
|
79
|
-
"esc": "esc"
|
|
80
|
+
"esc": "esc",
|
|
81
|
+
"admin.semanticSearch": "Wyszukiwanie semantyczne (AI)",
|
|
82
|
+
"admin.semanticSearchHelp": "Dodaje wyszukiwanie oparte na znaczeniu (wektorowe/hybrydowe) na szczycie zwykłego wyszukiwania słów kluczowych, napędzane przez osadzacze Meilisearch. Wymaga instancji Meilisearch obsługującej funkcję osadzaczy (v1.13+). Więcej informacji tutaj:",
|
|
83
|
+
"admin.semanticSearchEnable": "Włącz wyszukiwanie semantyczne",
|
|
84
|
+
"admin.semanticSearchProvider": "Dostawca osadzania",
|
|
85
|
+
"admin.semanticSearchProviderHelp": "Która usługa generuje wektory osadzania dla Twoich treści. OpenAI i Ollama wymagają, aby odpowiednia usługa była osiągalna z Meilisearch; osadzanie Hugging Face odbywa się wewnątrz samego Meilisearch.",
|
|
86
|
+
"admin.semanticSearchLocal": "lokalnie",
|
|
87
|
+
"admin.semanticSearchCustomRest": "Niestandardowy punkt końcowy REST",
|
|
88
|
+
"admin.semanticSearchApiKey": "Klucz API",
|
|
89
|
+
"admin.semanticSearchModel": "Model",
|
|
90
|
+
"admin.semanticSearchModelHelp": "Tekst dowolny — wpisz dowolną nazwę/etykietę modelu obsługiwaną przez dostawcę. Lista rozwijana oferuje tylko popularne sugestie.",
|
|
91
|
+
"admin.semanticSearchUrl": "URL",
|
|
92
|
+
"admin.semanticSearchUrlHelp": "Opcjonalne dla OpenAI/Ollama, wymagane dla niestandardowego punktu końcowego REST. Użyj tego, aby skierować dostawcę zgodnego z OpenAI (OpenRouter, Azure OpenAI, LocalAI itp.) na własny punkt końcowy osadzania zamiast domyślnego dostawcy — podaj pełną ścieżkę (np. .../v1/embeddings), nie tylko bazowy URL API. Pozostaw puste, aby użyć domyślnego punktu końcowego dostawcy.",
|
|
93
|
+
"admin.semanticSearchDimensions": "Wymiary osadzania (opcjonalnie)",
|
|
94
|
+
"admin.semanticSearchDimensionsHelp": "Pozostaw puste, aby pozwolić Meilisearch wykryć to automatycznie. Wymagane dla niektórych niestandardowych punktów końcowych REST.",
|
|
95
|
+
"admin.semanticSearchRestRequest": "Szablon żądania (JSON)",
|
|
96
|
+
"admin.semanticSearchRestResponse": "Szablon odpowiedzi (JSON)",
|
|
97
|
+
"admin.semanticSearchRestHelp": "Użyj dosłownych tokenów {{text}} i {{embedding}} tam, gdzie należą tekst wejściowy i zwracany wektor, zgodnie z kształtem żądania/odpowiedzi Twojego punktu końcowego. Zachowaj \"{{..}}\" jako drugi element tablicy w obu szablonach (jak w powyższych przykładach) — informuje Meilisearch, że ten punkt końcowy może osadzić partię tekstów w jednym wywołaniu, co ma miejsce podczas indeksowania. Usunięcie go z tylko jednego z dwóch szablonów powoduje błąd \"response has a single embedding, but request has multiple texts to embed\".",
|
|
98
|
+
"admin.semanticSearchRatio": "Proporcja semantyczna",
|
|
99
|
+
"admin.semanticSearchRatioHelp": "Ile wagi otrzymują dopasowania semantyczne (oparte na znaczeniu) w porównaniu z dopasowaniami słów kluczowych. 0 = tylko wyszukiwanie słów kluczowych, 1 = tylko wyszukiwanie semantyczne.",
|
|
100
|
+
"admin.semanticSearchScoreThreshold": "Minimalny wynik trafności",
|
|
101
|
+
"admin.semanticSearchScoreThresholdHelp": "Wyszukiwanie wektorowe Meilisearch nie ma wbudowanego progu — domyślnie zwraca pełny limit wyników nawet wtedy, gdy nic nie jest dobrym dopasowaniem, posortowane, ale nieprzefiltrowane. To odrzuca wyniki poniżej progu (0 = brak filtrowania/pierwotne zachowanie, 1 = tylko niemal idealne dopasowania). Jeśli pojawiają się w wynikach niepowiązane pozycje, zwiększ tę wartość.",
|
|
102
|
+
"admin.semanticSearchSaveNotice": "Zmiana powyższego dostawcy, poświadczeń, modelu lub wymiarów powoduje ponowne osadzenie każdego dokumentu przez Twoje API osadzania przy następnym zapisaniu ustawień. Samo przełączenie proporcji tego nie powoduje.",
|
|
103
|
+
"admin.semanticForceReindexCostNotice": "Wyszukiwanie semantyczne jest włączone: wymuszone ponowne indeksowanie usuwa wszystkie dokumenty i ponownie osadza je od zera przez Twoje API osadzania. Może to pociągnąć za sobą realny koszt API — zwykłe (niewymuszone) ponowne indeksowanie nie osadza ponownie niezmienionej treści.",
|
|
104
|
+
"admin.meilisearchError": "Błąd Meilisearch",
|
|
105
|
+
"admin.semanticEmbedderFailed": "Aktualizacja osadzacza nie powiodła się",
|
|
106
|
+
"admin.ollamaTesting": "Testowanie dostępności Ollama...",
|
|
107
|
+
"admin.ollamaUnreachableBody": "Ollama jest nieosiągalny z tego NodeBB (URL testu: <code>%1</code>; błąd: %2). Jeśli jesteś pewny, że Ollama działa i jest osiągalny z instancji Meilisearch, kliknij Zatwierdź, aby zapisać mimo to.",
|
|
108
|
+
"admin.ollamaReachable": "Ollama dostępny (v%1)",
|
|
109
|
+
"admin.ollamaReachableNoVersion": "Ollama dostępny",
|
|
110
|
+
"admin.semanticConfigInvalid": "Konfiguracja osadzacza nieprawidłowa",
|
|
111
|
+
"admin.semanticSearchDegraded": "Błąd wyszukiwania semantycznego",
|
|
112
|
+
"admin.semanticEmbedderDelayedFailed": "Zadanie osadzacza nie powiodło się po opóźnieniu (sprawdzanie w tle)"
|
|
80
113
|
}
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"admin.forceReindex": "强制重新索引(删除所有文档)",
|
|
49
49
|
"admin.reindexHelp": "在 Meilisearch 和 NodeBB 不匹配的情况下,重新索引所有帖子和主题。这可能需要一段时间,具体取决于您论坛中帖子和主题的数量。",
|
|
50
50
|
"admin.confirmReindex": "您确定要开始重新索引所有帖子和主题吗?<br>这项操作可能需要一段时间。",
|
|
51
|
+
"admin.confirmSemanticSave": "这将更改语义搜索提供商、凭据、模型、URL 或维度。<br><br><strong>Meilisearch 下次应用时将通过您的嵌入 API 重新嵌入每个现有文档——这可能产生实际的 API 成本。</strong><br><br>仍然保存吗?",
|
|
51
52
|
"admin.reindexPostsProgress": "重新索引帖子中...",
|
|
52
53
|
"admin.reindexTopicsProgress": "重新索引主题中...",
|
|
53
54
|
"admin.reindexMessagesProgress": "重新索引聊天消息中...",
|
|
@@ -76,5 +77,37 @@
|
|
|
76
77
|
"admin.indexingStarted": "索引已开始",
|
|
77
78
|
"admin.indexingStartedBody": "重新索引正在后台运行,进度将显示在下方。",
|
|
78
79
|
"similar-topics-header": "您的主题类似于…",
|
|
79
|
-
"esc": "esc"
|
|
80
|
+
"esc": "esc",
|
|
81
|
+
"admin.semanticSearch": "语义搜索 (AI)",
|
|
82
|
+
"admin.semanticSearchHelp": "在常规关键词搜索之上添加基于含义的(向量/混合)搜索,由 Meilisearch embedders 驱动。需要支持 embedders 功能(v1.13+)的 Meilisearch 实例。在此阅读更多:",
|
|
83
|
+
"admin.semanticSearchEnable": "启用语义搜索",
|
|
84
|
+
"admin.semanticSearchProvider": "嵌入提供商",
|
|
85
|
+
"admin.semanticSearchProviderHelp": "哪个服务为您的内容生成向量嵌入。OpenAI 和 Ollama 要求从 Meilisearch 可达相应服务;Hugging Face 嵌入在 Meilisearch 内部进行。",
|
|
86
|
+
"admin.semanticSearchLocal": "本地",
|
|
87
|
+
"admin.semanticSearchCustomRest": "自定义 REST 端点",
|
|
88
|
+
"admin.semanticSearchApiKey": "API Key",
|
|
89
|
+
"admin.semanticSearchModel": "模型",
|
|
90
|
+
"admin.semanticSearchModelHelp": "自由文本——输入提供商支持的任何模型名称/标签。下拉列表仅提供常见建议。",
|
|
91
|
+
"admin.semanticSearchUrl": "URL",
|
|
92
|
+
"admin.semanticSearchUrlHelp": "对 OpenAI/Ollama 可选,对自定义 REST 端点必需。使用此项将兼容 OpenAI 的提供商(OpenRouter、Azure OpenAI、LocalAI 等)指向其自身的嵌入端点而非提供商默认值——需包含完整路径(例如 .../v1/embeddings),不仅是 API 基础 URL。留空以使用提供商的默认端点。",
|
|
93
|
+
"admin.semanticSearchDimensions": "嵌入维度(可选)",
|
|
94
|
+
"admin.semanticSearchDimensionsHelp": "留空以让 Meilisearch 自动检测。某些自定义 REST 端点所必需。",
|
|
95
|
+
"admin.semanticSearchRestRequest": "请求模板 (JSON)",
|
|
96
|
+
"admin.semanticSearchRestResponse": "响应模板 (JSON)",
|
|
97
|
+
"admin.semanticSearchRestHelp": "在输入文本和返回向量所属位置使用字面标记 {{text}} 和 {{embedding}},与您端点的请求/响应形状匹配。在两个模板中都保留 \"{{..}}\" 作为数组第二项(如上方占位符所示)——它告诉 Meilisearch 此端点可以在一次调用中嵌入一批文本(索引时即如此操作)。仅从其中一个模板删除会导致错误 \"response has a single embedding, but request has multiple texts to embed\"。",
|
|
98
|
+
"admin.semanticSearchRatio": "语义比例",
|
|
99
|
+
"admin.semanticSearchRatioHelp": "语义(基于含义)匹配相对于关键词匹配获得多少权重。0 = 仅关键词搜索,1 = 仅语义搜索。",
|
|
100
|
+
"admin.semanticSearchScoreThreshold": "最低相关性评分",
|
|
101
|
+
"admin.semanticSearchScoreThresholdHelp": "Meilisearch 的向量搜索没有内置阈值——默认返回完整结果上限,即使没有良好匹配,也只是排序但未过滤。此项删除评分低于阈值的命中结果(0 = 不过滤/原始行为,1 = 仅近乎完美匹配)。如果结果中出现不相关的命中,请提高此值。",
|
|
102
|
+
"admin.semanticSearchSaveNotice": "上方更改提供商、凭据、模型或维度会在下次保存设置时通过您的嵌入 API 重新嵌入每个文档。仅切换比例不会如此。",
|
|
103
|
+
"admin.semanticForceReindexCostNotice": "语义搜索已启用:强制重新索引删除所有文档,并通过您的嵌入 API 从头重新嵌入它们。这可能产生实际的 API 成本——常规(非强制)重新索引不会重新嵌入未更改的内容。",
|
|
104
|
+
"admin.meilisearchError": "Meilisearch 错误",
|
|
105
|
+
"admin.semanticEmbedderFailed": "Embedder 更新失败",
|
|
106
|
+
"admin.ollamaTesting": "正在测试 Ollama 可达性...",
|
|
107
|
+
"admin.ollamaUnreachableBody": "从此 NodeBB 无法访问 Ollama(探测 URL:<code>%1</code>;错误:%2)。如果您确定 Ollama 已启动且可从 Meilisearch 实例访问,点击确认以仍然保存。",
|
|
108
|
+
"admin.ollamaReachable": "Ollama 可达 (v%1)",
|
|
109
|
+
"admin.ollamaReachableNoVersion": "Ollama 可达",
|
|
110
|
+
"admin.semanticConfigInvalid": "Embedder 配置无效",
|
|
111
|
+
"admin.semanticSearchDegraded": "语义搜索错误",
|
|
112
|
+
"admin.semanticEmbedderDelayedFailed": "Embedder 任务在延迟后失败(后台检查)"
|
|
80
113
|
}
|