@jjlmoya/utils-performing-arts 1.1.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/.github/workflows/npm-publish.yml +40 -0
- package/.gitignore +6 -0
- package/.stylelintrc.json +98 -0
- package/astro.config.mjs +19 -0
- package/eslint.config.js +201 -0
- package/package.json +79 -0
- package/prompts/create_tool.md +98 -0
- package/prompts/i18n/de.md +16 -0
- package/prompts/i18n/en.md +16 -0
- package/prompts/i18n/es.md +16 -0
- package/prompts/i18n/fr.md +16 -0
- package/prompts/i18n/id.md +16 -0
- package/prompts/i18n/it.md +16 -0
- package/prompts/i18n/ja.md +16 -0
- package/prompts/i18n/ko.md +16 -0
- package/prompts/i18n/nl.md +16 -0
- package/prompts/i18n/pl.md +16 -0
- package/prompts/i18n/pt.md +16 -0
- package/prompts/i18n/ru.md +16 -0
- package/prompts/i18n/sv.md +16 -0
- package/prompts/i18n/tr.md +16 -0
- package/prompts/i18n/zh.md +16 -0
- package/prompts/seo.md +58 -0
- package/prompts/translations/french.md +33 -0
- package/scripts/postinstall.mjs +27 -0
- package/src/category/PerformingArtsCategorySEO.astro +9 -0
- package/src/category/i18n/de.ts +27 -0
- package/src/category/i18n/en.ts +27 -0
- package/src/category/i18n/es.ts +27 -0
- package/src/category/i18n/fr.ts +27 -0
- package/src/category/i18n/id.ts +27 -0
- package/src/category/i18n/it.ts +27 -0
- package/src/category/i18n/ja.ts +27 -0
- package/src/category/i18n/ko.ts +27 -0
- package/src/category/i18n/nl.ts +27 -0
- package/src/category/i18n/pl.ts +27 -0
- package/src/category/i18n/pt.ts +27 -0
- package/src/category/i18n/ru.ts +27 -0
- package/src/category/i18n/sv.ts +27 -0
- package/src/category/i18n/tr.ts +27 -0
- package/src/category/i18n/zh.ts +27 -0
- package/src/category/index.ts +10 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +10 -0
- package/src/entries.ts +3 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +20 -0
- package/src/layouts/PreviewLayout.astro +118 -0
- package/src/pages/[locale]/[slug].astro +165 -0
- package/src/pages/[locale].astro +251 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/faq_count.test.ts +18 -0
- package/src/tests/i18n_coverage.test.ts +34 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +23 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_em_dash.test.ts +47 -0
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/pagespeed_best_practices.test.ts +198 -0
- package/src/tests/qa-test-helpers.ts +32 -0
- package/src/tests/qa_bibliography_links.test.ts +43 -0
- package/src/tests/qa_claim_evidence.test.ts +69 -0
- package/src/tests/qa_logic_reference_coverage.test.ts +46 -0
- package/src/tests/qa_runtime_i18n.test.ts +100 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/seo_parity.test.ts +60 -0
- package/src/tests/seo_translation_completeness.test.ts +69 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/slug_language_code_format.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/spanish_leakage.test.ts +175 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tests/tool_validation.test.ts +16 -0
- package/src/tests/translation_copy.test.ts +115 -0
- package/src/tool/rehearsal-call-sheet-planner/bibliography.astro +6 -0
- package/src/tool/rehearsal-call-sheet-planner/bibliography.ts +12 -0
- package/src/tool/rehearsal-call-sheet-planner/component.astro +74 -0
- package/src/tool/rehearsal-call-sheet-planner/controller.ts +98 -0
- package/src/tool/rehearsal-call-sheet-planner/dom-views.ts +86 -0
- package/src/tool/rehearsal-call-sheet-planner/entry.ts +27 -0
- package/src/tool/rehearsal-call-sheet-planner/evaluator.ts +27 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/de.ts +60 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/en.ts +158 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/es.ts +60 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/fr.ts +60 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/id.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/it.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/ja.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/ko.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/nl.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/pl.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/pt.ts +47 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/ru.ts +48 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/sv.ts +48 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/tr.ts +48 -0
- package/src/tool/rehearsal-call-sheet-planner/i18n/zh.ts +48 -0
- package/src/tool/rehearsal-call-sheet-planner/index.ts +11 -0
- package/src/tool/rehearsal-call-sheet-planner/logic.test.ts +68 -0
- package/src/tool/rehearsal-call-sheet-planner/logic.ts +229 -0
- package/src/tool/rehearsal-call-sheet-planner/rehearsal-call-sheet-planner.css +593 -0
- package/src/tool/rehearsal-call-sheet-planner/seo.astro +16 -0
- package/src/tool/rehearsal-call-sheet-planner/storage.ts +33 -0
- package/src/tool/rehearsal-call-sheet-planner/types.ts +84 -0
- package/src/tool/rehearsal-call-sheet-planner/ui.ts +70 -0
- package/src/tools.ts +8 -0
- package/src/types.ts +68 -0
- package/tsconfig.json +15 -0
- package/vitest.config.ts +20 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: RehearsalCallSheetUI = {
|
|
6
|
+
productionSection: 'Produzione', showName: 'Nome della produzione', showNamePlaceholder: 'Sei personaggi in cerca d autore', date: 'Data della prova', timingSection: 'Giornata di lavoro', dayStart: 'Inizio giornata', dayEnd: 'Fine giornata', breakMinutes: 'Pausa tra le scene',
|
|
7
|
+
sceneSection: 'Scene e sessioni', scenesLabel: 'Elenco delle scene', scenesHint: 'Una riga per scena: Nome | minuti | sala | persone separate da virgole | nota. Esempio: Combattimento | 45 | Studio | Alex, Bea | Lavoro lento.', availabilitySection: 'Disponibilità', participantAvailability: 'Persone', participantHint: 'Una riga per persona: Nome | prima convocazione fino all uscita. I nomi devono corrispondere all elenco delle scene.', roomAvailability: 'Sale', roomHint: 'Una riga per sala: Sala | apertura fino alla chiusura. Esempio: Studio | 09:00-18:00.',
|
|
8
|
+
notes: 'Note di produzione', notesPlaceholder: 'Oggetti di scena, costumi, accesso o note di sicurezza per la giornata', presets: 'Inizia con una bozza', presetDay: 'Giornata intera', presetTight: 'Prova concentrata', presetShowcase: 'Filata dimostrativa',
|
|
9
|
+
resultSection: 'Foglio convocazioni', scheduled: 'Programmate', conflicts: 'Conflitti', unscheduled: 'Fuori giornata', minutes: 'minuti', timelineLabel: 'Cronologia della prova', callSheetLabel: 'Foglio convocazioni stampabile', statusScheduled: 'Programmata', statusConflict: 'Verifica convocazione', statusUnscheduled: 'Fuori giornata', issueDayOverflow: 'Questa sessione supera la fine della giornata', issueParticipantAvailability: 'fuori dalla disponibilità di', issueRoomAvailability: 'fuori dalla disponibilità della sala', issueMissingParticipantAvailability: 'nessuna disponibilità registrata per', issueMissingRoomAvailability: 'nessuna disponibilità registrata per la sala',
|
|
10
|
+
participantSummary: 'Convocazioni per persona', roomSummary: 'Uso delle sale', scene: 'scena', scenes: 'scene', firstCall: 'Prima convocazione', lastCall: 'Ultima uscita', room: 'Sala', participants: 'Persone', time: 'Orario', status: 'Stato', detail: 'Dettaglio', dateNotSet: 'Data non impostata', untitledProduction: 'Produzione senza titolo', noRoom: 'Nessuna sala indicata', noPeople: 'Nessuna persona indicata', readyDetail: 'Pronta per la prova', inputIssuesTitle: 'Controlla queste righe', inputIssuesHint: 'Queste righe sono state ignorate fino alla correzione.', scenesInput: 'Scene', peopleInput: 'Disponibilità delle persone', roomsInput: 'Disponibilità delle sale', line: 'riga',
|
|
11
|
+
summaryReady: 'Questa bozza è pronta per la revisione della squadra e la stampa.', summaryAttention: 'Controlla le convocazioni segnalate prima di inviare la bozza.', summaryInputIssues: 'Correggi le righe ignorate prima di affidarti all orario.', noScenes: 'Aggiungi una riga di scena per disegnare la giornata di prova.', exportData: 'Scarica JSON', print: 'Stampa il foglio convocazioni', reset: 'Reimposta la bozza', rulesNote: 'Questa è una bozza di pianificazione, non un foglio convocazioni legale. Controlla accordi di produzione, regole della sede e norme locali sull orario di lavoro prima di inviarla.', rulesLinkLabel: 'Leggi la guida britannica come riferimento',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const faq = [
|
|
15
|
+
{ question: 'Che cos è un foglio convocazioni per una prova?', answer: 'È il piano pratico di una giornata di prova: quando si lavora ogni scena, chi deve partecipare, quale sala si usa e cosa la squadra deve portare o ricordare. Questo strumento trasforma le informazioni in una bozza da controllare e stampare.' },
|
|
16
|
+
{ question: 'Come si formatta l elenco delle scene?', answer: 'Scrivi una scena per riga e separa con barre verticali il nome, la durata in minuti, la sala, le persone separate da virgole e le note facoltative. Esempio: Combattimento | 45 | Studio | Alex, Bea | Lavoro lento.' },
|
|
17
|
+
{ question: 'Che cosa significa un conflitto?', answer: 'Significa che una persona o una sala non è disponibile per tutta la sessione, oppure che manca il relativo dato di disponibilità. La sessione resta visibile per poterla correggere.' },
|
|
18
|
+
{ question: 'Lo strumento trova l orario perfetto?', answer: 'No. Rispetta l ordine inserito e controlla ogni sessione rispetto alle finestre indicate. Non ottimizza spostamenti, contratti, cast, sale parallele o conformità legale.' },
|
|
19
|
+
{ question: 'Dove vengono salvati nomi e note?', answer: 'La bozza attuale viene salvata in questo browser su questo dispositivo. Il pianificatore non carica questi dati. Usa Reimposta la bozza o cancella i dati del sito per rimuoverla.' },
|
|
20
|
+
{ question: 'Il campo pausa rende il foglio conforme alla legge?', answer: 'No. Inserisce solo uno spazio di pianificazione tra le sessioni. Orario di lavoro, riposo, tutela e regole del lavoro dipendono dal luogo e dalla produzione.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const howTo = [
|
|
24
|
+
{ name: 'Dai un nome alla produzione', text: 'Inserisci il nome dello spettacolo o del progetto e la data della prova affinché il foglio stampato sia riconoscibile.' },
|
|
25
|
+
{ name: 'Imposta la giornata', text: 'Scegli inizio, fine e pausa tra le sessioni. Con 15 minuti di pausa, una scena di 60 minuti iniziata alle 09:00 porta la convocazione successiva alle 10:15.' },
|
|
26
|
+
{ name: 'Inserisci le scene', text: 'Aggiungi in ogni riga durata, sala, persone e note utili separandole con barre verticali.' },
|
|
27
|
+
{ name: 'Aggiungi le disponibilità', text: 'Indica una finestra per ogni persona e sala usando gli stessi nomi dell elenco delle scene.' },
|
|
28
|
+
{ name: 'Controlla e condividi', text: 'Leggi la cronologia, risolvi i conflitti e poi stampa il foglio o scarica la bozza JSON.' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
32
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Pianificatore delle convocazioni di prova', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Crea una bozza di foglio convocazioni con scene, cast, sale, disponibilità e pause.' };
|
|
33
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Come creare un foglio convocazioni per le prove', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
|
|
34
|
+
|
|
35
|
+
export const content: RehearsalCallSheetLocaleContent = {
|
|
36
|
+
slug: 'pianificatore-foglio-convocazioni-prove-teatro', title: 'Foglio convocazioni di prova', description: 'Crea un foglio convocazioni per prove teatrali con scene, cast, sale, disponibilità e pause. Segnala i conflitti prima dell invio.', ui,
|
|
37
|
+
seo: [
|
|
38
|
+
{ type: 'title', text: 'Come creare un foglio convocazioni per le prove', level: 2 }, { type: 'paragraph', html: 'Il foglio convocazioni di prova è il piano quotidiano condiviso da regia, organizzazione, interpreti e squadra. Questo pianificatore trasforma l ordine delle scene in una bozza oraria, controlla persone e sale e segnala cosa confermare prima dell invio.' },
|
|
39
|
+
{ type: 'title', text: 'Cosa deve contenere un buon foglio', level: 2 }, { type: 'paragraph', html: 'Un elenco utile non contiene solo titoli. Ogni sessione ha bisogno di durata, sala, persone coinvolte e una nota se servono oggetti di scena, costumi, preparazione o condizioni di lavoro particolari.' },
|
|
40
|
+
{ type: 'table', headers: ['Ingresso', 'Cosa fa lo strumento'], rows: [['Scene', 'Colloca le sessioni nell ordine indicato'], ['Persone', 'Controlla ogni convocazione rispetto a una finestra'], ['Sale', 'Controlla la sala per tutta la sessione'], ['Pause', 'Aggiunge uno spazio di pianificazione tra le scene'], ['Note', 'Conserva il contesto pratico sul foglio stampato']] },
|
|
41
|
+
{ type: 'title', text: 'Come leggere la cronologia', level: 2 }, { type: 'paragraph', html: 'La cronologia rispetta il tuo ordine e non indovina priorità artistiche. Se una scena inizia alle 09:00, dura 60 minuti e prevede 15 minuti di pausa, la successiva inizia alle 10:15. Un conflitto indica che la convocazione non rientra nella disponibilità di una persona o di una sala.' },
|
|
42
|
+
{ type: 'title', text: 'Controlla la bozza prima di inviarla', level: 2 }, { type: 'list', items: ['Conferma l ordine con regia e organizzazione.', 'Controlla spostamenti, accessi, costumi, oggetti di scena, tutela e tempo per riordinare la sala.', 'Sostituisci le disponibilità mancanti con convocazioni confermate.', 'Verifica accordi locali e regole sull orario di lavoro con la squadra responsabile.'] },
|
|
43
|
+
{ type: 'title', text: 'Una bozza trasparente con giudizio umano', level: 2 }, { type: 'paragraph', html: 'Lo strumento non conosce l ordine artistico migliore, gli spostamenti, le necessità di accesso, la tutela o le regole locali. Fornisce un foglio leggibile che la squadra di produzione può rivedere insieme.' },
|
|
44
|
+
{ type: 'tip', title: 'Usa la disponibilità per aprire il dialogo', html: 'Una finestra mancante o incoerente non è un giudizio su una persona. Indica che bisogna confermare la convocazione, cambiare ordine, cambiare sala o completare l informazione.' },
|
|
45
|
+
{ type: 'title', text: 'Stampa un foglio davvero utilizzabile', level: 2 }, { type: 'paragraph', html: 'Risolvi prima le convocazioni segnalate, poi stampa il foglio per la sala o scarica la bozza JSON. Ordine, orari, sale, persone, note e stato di controllo restano insieme.' },
|
|
46
|
+
], faq, bibliography, howTo, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[],
|
|
47
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: RehearsalCallSheetUI = {
|
|
6
|
+
productionSection: '制作', showName: '作品名', showNamePlaceholder: 'ガラスの動物園', date: '稽古日', timingSection: '稽古時間', dayStart: '開始時刻', dayEnd: '終了時刻', breakMinutes: '場面の間の休憩',
|
|
7
|
+
sceneSection: '場面とセッション', scenesLabel: '場面リスト', scenesHint: '1行に1場面: 名前 | 分数 | 部屋 | 人名をカンマ区切り | メモ。例: 殺陣 | 45 | スタジオ | Alex, Bea | ゆっくり進める。', availabilitySection: '参加可能時間', participantAvailability: '出演者とスタッフ', participantHint: '1行に1人: 名前 | 最初の呼び出しから退出まで。名前は場面リストと一致させてください。', roomAvailability: '部屋', roomHint: '1行に1部屋: 部屋 | 開始時刻から終了時刻まで。例: スタジオ | 09:00-18:00。',
|
|
8
|
+
notes: '制作メモ', notesPlaceholder: '小道具、衣装、入場、または安全上の注意', presets: '下書きから始める', presetDay: '終日の稽古', presetTight: '短時間の稽古', presetShowcase: '発表用の通し',
|
|
9
|
+
resultSection: '稽古コールシート', scheduled: '予定内', conflicts: '要確認', unscheduled: '時間外', minutes: '分', timelineLabel: '稽古タイムライン', callSheetLabel: '印刷用稽古コールシート', statusScheduled: '予定内', statusConflict: 'コールを確認', statusUnscheduled: '時間外', issueDayOverflow: 'このセッションは稽古終了時刻を超えます', issueParticipantAvailability: 'の参加可能時間外', issueRoomAvailability: 'の部屋の利用時間外', issueMissingParticipantAvailability: 'の参加可能時間が未登録', issueMissingRoomAvailability: 'の部屋の利用時間が未登録',
|
|
10
|
+
participantSummary: '人ごとのコール', roomSummary: '部屋の使用', scene: '場面', scenes: '場面', firstCall: '最初のコール', lastCall: '最後の退出', room: '部屋', participants: '参加者', time: '時間', status: '状態', detail: '詳細', dateNotSet: '日付未設定', untitledProduction: '作品名未設定', noRoom: '部屋未設定', noPeople: '参加者未設定', readyDetail: '稽古可能', inputIssuesTitle: '次の行を確認してください', inputIssuesHint: '修正されるまでこれらの行は読み込まれません。', scenesInput: '場面', peopleInput: '人の参加可能時間', roomsInput: '部屋の利用時間', line: '行',
|
|
11
|
+
summaryReady: 'この下書きは制作チームで確認して印刷できます。', summaryAttention: '送信する前に、表示されたコールを確認してください。', summaryInputIssues: '予定を信頼する前に、読み込まれなかった行を修正してください。', noScenes: '場面を1行追加すると稽古の流れが表示されます。', exportData: 'JSONをダウンロード', print: 'コールシートを印刷', reset: '下書きをリセット', rulesNote: 'これは計画用の下書きであり、法的なコールシートではありません。送信前に制作契約、会場規則、地域の労働時間を確認してください。', rulesLinkLabel: '英国の案内を参考として読む',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const faq = [
|
|
15
|
+
{ question: '稽古コールシートとは何ですか?', answer: '稽古日の実用的な計画表です。各場面をいつ稽古するか、誰が参加するか、どの部屋を使うか、何を準備するかをまとめます。このツールは情報を確認と印刷ができる下書きにします。' },
|
|
16
|
+
{ question: '場面リストはどのように入力しますか?', answer: '1行に1場面を入力し、名前、分数、部屋、カンマ区切りの参加者、任意のメモを縦棒で分けます。例: 殺陣 | 45 | スタジオ | Alex, Bea | ゆっくり進める。' },
|
|
17
|
+
{ question: '要確認とはどういう意味ですか?', answer: '人または部屋がセッション全体で利用できないか、利用可能時間の記録がないことを意味します。セッションは消さずに表示されるため、修正できます。' },
|
|
18
|
+
{ question: '最適なスケジュールを作れますか?', answer: 'いいえ。入力した場面の順番を使い、登録された時間帯を確認します。移動、契約、配役、同時使用する部屋、法令順守は最適化しません。' },
|
|
19
|
+
{ question: '名前やメモはどこに保存されますか?', answer: '現在の下書きはこの端末のこのブラウザに保存されます。このプランナー自体がデータをアップロードすることはありません。削除するには下書きをリセットするか、サイトデータを消去してください。' },
|
|
20
|
+
{ question: '休憩を入力すれば法律に適合しますか?', answer: 'いいえ。セッション間に計画上の空き時間を追加するだけです。労働時間、休息、安全、雇用規則は地域と制作によって異なります。' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const howTo = [
|
|
24
|
+
{ name: '作品名を入力する', text: '作品名と稽古日を入力すると、印刷したシートを識別しやすくなります。' },
|
|
25
|
+
{ name: '稽古時間を決める', text: '開始、終了、セッション間の休憩を選びます。60分の場面が09:00に始まり休憩が15分なら、次のコールは10:15です。' },
|
|
26
|
+
{ name: '場面を入力する', text: '各行に分数、部屋、参加者、役立つメモを縦棒で区切って追加します。' },
|
|
27
|
+
{ name: '参加可能時間を入力する', text: '場面リストと同じ名前を使い、人と部屋ごとに時間帯を入力します。' },
|
|
28
|
+
{ name: '確認して共有する', text: 'タイムラインと要確認の項目を読み、修正してから印刷またはJSONをダウンロードします。' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
32
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: '稽古コールシートプランナー', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: '場面、出演者、部屋、参加可能時間、休憩から稽古日の下書きを作成します。' };
|
|
33
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: '稽古コールシートの作り方', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
|
|
34
|
+
|
|
35
|
+
export const content: RehearsalCallSheetLocaleContent = {
|
|
36
|
+
slug: 'rehearsal-call-sheet-planner', title: '稽古コールシート', description: '演劇の稽古コールシートを場面、出演者、部屋、参加可能時間、休憩から作成し、送信前に問題を確認できます。', ui,
|
|
37
|
+
seo: [
|
|
38
|
+
{ type: 'title', text: '稽古コールシートの作り方', level: 2 }, { type: 'paragraph', html: '稽古コールシートは、演出、舞台監督、出演者、スタッフが共有する一日の計画です。このプランナーは場面の順番を時間表にし、人と部屋の利用時間を確認して、送信前に確認すべき点を示します。' },
|
|
39
|
+
{ type: 'title', text: '役立つコールシートに必要な項目', level: 2 }, { type: 'paragraph', html: '場面名だけでは足りません。各セッションには分数、部屋、参加者が必要です。小道具、衣装、準備、特別な作業条件がある場合はメモを加えます。' },
|
|
40
|
+
{ type: 'table', headers: ['入力', 'プランナーの処理'], rows: [['場面', '入力された順番に並べる'], ['人', '各コールを時間帯と照合する'], ['部屋', 'セッション全体の利用時間を確認する'], ['休憩', '場面の間に計画上の空きを入れる'], ['メモ', '印刷用シートに実務情報を残す']] },
|
|
41
|
+
{ type: 'title', text: 'タイムラインの読み方', level: 2 }, { type: 'paragraph', html: 'タイムラインは入力した順番を使い、芸術的な優先順位を推測しません。09:00開始で60分の場面に15分の休憩を入れると、次の場面は10:15に始まります。要確認は人または部屋の時間帯に合わないことを示します。' },
|
|
42
|
+
{ type: 'title', text: '送信前に下書きを確認する', level: 2 }, { type: 'list', items: ['演出と舞台監督に順番を確認する。', '移動、入場、衣装、小道具、安全、部屋の復旧時間を確認する。', '未登録の参加可能時間を確認済みのコールに置き換える。', '担当チームと地域の契約や労働時間の規則を確認する。'] },
|
|
43
|
+
{ type: 'title', text: '人の判断を残した透明な下書き', level: 2 }, { type: 'paragraph', html: 'このツールは最適な芸術的順番、移動、入場、安全、地域の規則を知りません。実際の制作チームが一緒に検討できる、読みやすい下書きを提供します。' },
|
|
44
|
+
{ type: 'tip', title: '参加可能時間を会話のきっかけにする', html: '時間帯の欠落や矛盾は人への評価ではありません。コールの確認、順番の変更、部屋の変更、情報の追加が必要だという合図です。' },
|
|
45
|
+
{ type: 'title', text: '使えるコールシートを印刷する', level: 2 }, { type: 'paragraph', html: '表示されたコールを修正してから、部屋に置くシートを印刷するかJSONの下書きをダウンロードします。順番、時刻、部屋、人、メモ、確認状態を一つにまとめられます。' },
|
|
46
|
+
], faq, bibliography, howTo, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[],
|
|
47
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: RehearsalCallSheetUI = {
|
|
6
|
+
productionSection: '제작', showName: '작품명', showNamePlaceholder: '유리 동물원', date: '리허설 날짜', timingSection: '작업일', dayStart: '시작 시간', dayEnd: '종료 시간', breakMinutes: '장면 사이 휴식',
|
|
7
|
+
sceneSection: '장면과 세션', scenesLabel: '장면 목록', scenesHint: '장면마다 한 줄: 이름 | 분 | 공간 | 쉼표로 구분한 사람 | 메모. 예: 액션 리허설 | 45 | 스튜디오 | Alex, Bea | 천천히 진행.', availabilitySection: '가능 시간', participantAvailability: '사람', participantHint: '사람마다 한 줄: 이름 | 첫 호출부터 마지막 퇴장까지. 이름은 장면 목록과 같아야 합니다.', roomAvailability: '공간', roomHint: '공간마다 한 줄: 공간 | 시작 시간부터 종료 시간까지. 예: 스튜디오 | 09:00-18:00.',
|
|
8
|
+
notes: '제작 메모', notesPlaceholder: '소품, 의상, 출입 또는 하루 전체의 안전 메모', presets: '초안으로 시작', presetDay: '하루 종일 리허설', presetTight: '짧은 리허설', presetShowcase: '쇼케이스 런',
|
|
9
|
+
resultSection: '콜 시트', scheduled: '예정됨', conflicts: '충돌', unscheduled: '일정 밖', minutes: '분', timelineLabel: '리허설 타임라인', callSheetLabel: '인쇄 가능한 리허설 콜 시트', statusScheduled: '예정됨', statusConflict: '호출 확인', statusUnscheduled: '일정 밖', issueDayOverflow: '이 세션은 작업일 종료 시간을 넘깁니다', issueParticipantAvailability: '가능 시간 밖', issueRoomAvailability: '공간 사용 시간 밖', issueMissingParticipantAvailability: '가능 시간이 등록되지 않음', issueMissingRoomAvailability: '공간 사용 시간이 등록되지 않음',
|
|
10
|
+
participantSummary: '사람별 호출', roomSummary: '공간 사용', scene: '장면', scenes: '장면', firstCall: '첫 호출', lastCall: '마지막 퇴장', room: '공간', participants: '사람', time: '시간', status: '상태', detail: '세부 내용', dateNotSet: '날짜 미정', untitledProduction: '제목 없는 작품', noRoom: '공간 미입력', noPeople: '사람 미입력', readyDetail: '리허설 준비 완료', inputIssuesTitle: '다음 줄을 확인하세요', inputIssuesHint: '수정할 때까지 이 줄은 건너뜁니다.', scenesInput: '장면', peopleInput: '사람 가능 시간', roomsInput: '공간 사용 시간', line: '줄',
|
|
11
|
+
summaryReady: '이 초안은 제작팀이 검토한 뒤 인쇄할 수 있습니다.', summaryAttention: '초안을 보내기 전에 표시된 호출을 확인하세요.', summaryInputIssues: '일정을 믿기 전에 건너뛴 줄을 수정하세요.', noScenes: '장면을 한 줄 추가하면 리허설 일정이 표시됩니다.', exportData: 'JSON 다운로드', print: '콜 시트 인쇄', reset: '초안 초기화', rulesNote: '이 도구는 계획 초안이며 법적 콜 시트가 아닙니다. 보내기 전에 제작 계약, 공연장 규칙, 현지 근로시간 규정을 확인하세요.', rulesLinkLabel: '영국 지침을 참고로 읽기',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const faq = [
|
|
15
|
+
{ question: '리허설 콜 시트란 무엇인가요?', answer: '리허설 하루에 대한 실무 계획입니다. 어떤 장면을 언제 연습하는지, 누가 참석하는지, 어느 공간을 사용하는지, 무엇을 준비해야 하는지를 정리합니다. 이 도구는 정보를 검토하고 인쇄할 수 있는 초안으로 만듭니다.' },
|
|
16
|
+
{ question: '장면 목록은 어떻게 입력하나요?', answer: '장면마다 한 줄을 쓰고 이름, 분 단위 시간, 공간, 쉼표로 구분한 사람, 선택 메모를 세로 막대로 나눕니다. 예: 액션 리허설 | 45 | 스튜디오 | Alex, Bea | 천천히 진행.' },
|
|
17
|
+
{ question: '충돌은 무엇을 의미하나요?', answer: '사람이나 공간이 세션 전체에 이용 가능하지 않거나 가능 시간 기록이 없다는 뜻입니다. 수정할 수 있도록 세션은 화면에 남습니다.' },
|
|
18
|
+
{ question: '완벽한 일정을 찾아 주나요?', answer: '아니요. 입력한 장면 순서를 사용하고 등록한 시간대를 확인합니다. 이동, 계약, 배역, 여러 공간의 동시 사용, 법적 준수는 최적화하지 않습니다.' },
|
|
19
|
+
{ question: '이름과 메모는 어디에 저장되나요?', answer: '현재 초안은 이 기기의 이 브라우저에 저장됩니다. 플래너 자체가 데이터를 업로드하지는 않습니다. 삭제하려면 초안 초기화를 사용하거나 사이트 데이터를 지우세요.' },
|
|
20
|
+
{ question: '휴식 시간을 입력하면 법을 지키게 되나요?', answer: '아니요. 세션 사이에 계획용 빈 시간만 추가합니다. 근로시간, 휴식, 안전, 고용 규칙은 지역과 제작에 따라 다릅니다.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const howTo = [
|
|
24
|
+
{ name: '작품 이름 정하기', text: '공연이나 프로젝트 이름과 리허설 날짜를 입력하면 인쇄한 시트를 쉽게 구분할 수 있습니다.' },
|
|
25
|
+
{ name: '작업일 설정하기', text: '시작, 종료, 세션 사이 휴식을 정합니다. 09:00에 시작하는 60분 장면에 15분 휴식이 있으면 다음 호출은 10:15입니다.' },
|
|
26
|
+
{ name: '장면 입력하기', text: '각 줄에 시간, 공간, 사람, 필요한 메모를 세로 막대로 나누어 입력합니다.' },
|
|
27
|
+
{ name: '가능 시간 추가하기', text: '장면 목록과 같은 이름으로 사람과 공간의 시간대를 입력합니다.' },
|
|
28
|
+
{ name: '검토하고 공유하기', text: '타임라인과 충돌을 읽고 수정한 다음 시트를 인쇄하거나 JSON 초안을 다운로드합니다.' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
32
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: '리허설 콜 시트 플래너', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: '장면, 출연자, 공간, 가능 시간, 휴식으로 리허설 하루의 초안을 만듭니다.' };
|
|
33
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: '리허설 콜 시트 만드는 법', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
|
|
34
|
+
|
|
35
|
+
export const content: RehearsalCallSheetLocaleContent = {
|
|
36
|
+
slug: 'rehearsal-call-sheet-planner', title: '리허설 콜 시트', description: '장면, 출연자, 공간, 가능 시간과 휴식으로 연극 리허설 콜 시트를 만들고 보내기 전에 충돌을 확인하세요.', ui,
|
|
37
|
+
seo: [
|
|
38
|
+
{ type: 'title', text: '리허설 콜 시트 만드는 법', level: 2 }, { type: 'paragraph', html: '리허설 콜 시트는 연출, 무대감독, 배우와 스태프가 공유하는 하루 계획입니다. 이 플래너는 장면 순서를 시간표로 바꾸고 사람과 공간의 가능 시간을 확인하여 보내기 전에 정리할 항목을 보여 줍니다.' },
|
|
39
|
+
{ type: 'title', text: '쓸모 있는 콜 시트에 필요한 내용', level: 2 }, { type: 'paragraph', html: '장면 제목만 나열해서는 부족합니다. 각 세션에는 시간, 공간, 참여자가 필요하며 소품, 의상, 준비 또는 특별한 작업 조건이 있으면 메모를 남겨야 합니다.' },
|
|
40
|
+
{ type: 'table', headers: ['입력', '플래너의 역할'], rows: [['장면', '입력한 순서대로 세션을 배치합니다'], ['사람', '각 호출을 가능 시간과 비교합니다'], ['공간', '세션 전체의 공간 사용을 확인합니다'], ['휴식', '장면 사이에 계획용 간격을 넣습니다'], ['메모', '인쇄용 시트에 실무 정보를 남깁니다']] },
|
|
41
|
+
{ type: 'title', text: '타임라인 읽는 법', level: 2 }, { type: 'paragraph', html: '타임라인은 입력한 순서를 따르며 예술적 우선순위를 추측하지 않습니다. 09:00에 시작한 60분 장면 뒤에 15분 휴식이 있으면 다음 장면은 10:15에 시작합니다. 충돌은 사람이나 공간의 시간대와 맞지 않는 호출을 뜻합니다.' },
|
|
42
|
+
{ type: 'title', text: '보내기 전에 초안 확인하기', level: 2 }, { type: 'list', items: ['연출과 무대감독에게 순서를 확인하세요.', '이동, 출입, 의상, 소품, 안전과 공간 정리 시간을 확인하세요.', '없는 가능 시간을 확인된 호출로 바꾸세요.', '책임 있는 팀과 지역 계약 및 근로시간 규정을 확인하세요.'] },
|
|
43
|
+
{ type: 'title', text: '사람의 판단을 남기는 투명한 초안', level: 2 }, { type: 'paragraph', html: '이 도구는 최선의 예술적 순서, 이동, 출입, 안전 또는 지역 규정을 알지 못합니다. 실제 제작팀이 함께 검토할 수 있는 읽기 쉬운 초안을 제공합니다.' },
|
|
44
|
+
{ type: 'tip', title: '가능 시간을 대화의 시작점으로 사용하세요', html: '빠진 시간대나 모순된 시간대는 누군가를 평가하는 표시가 아닙니다. 호출을 확인하거나 순서와 공간을 바꾸거나 정보를 보완하라는 신호입니다.' },
|
|
45
|
+
{ type: 'title', text: '바로 사용할 수 있는 콜 시트 인쇄하기', level: 2 }, { type: 'paragraph', html: '표시된 호출을 먼저 해결한 뒤 공간에 둘 시트를 인쇄하거나 JSON 초안을 다운로드하세요. 순서, 시간, 공간, 사람, 메모와 확인 상태를 한 문서에 담을 수 있습니다.' },
|
|
46
|
+
], faq, bibliography, howTo, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[],
|
|
47
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: RehearsalCallSheetUI = {
|
|
6
|
+
productionSection: 'Productie', showName: 'Naam van de productie', showNamePlaceholder: 'De kersentuin', date: 'Repetitiedatum', timingSection: 'Werkdag', dayStart: 'Begin van de dag', dayEnd: 'Einde van de dag', breakMinutes: 'Pauze tussen scènes',
|
|
7
|
+
sceneSection: 'Scènes en sessies', scenesLabel: 'Scènelijst', scenesHint: 'Eén regel per scène: Naam | minuten | ruimte | personen met komma s | notitie. Voorbeeld: Gevechtsrepetitie | 45 | Studio | Alex, Bea | Rustig werken.', availabilitySection: 'Beschikbaarheid', participantAvailability: 'Personen', participantHint: 'Eén regel per persoon: Naam | eerste oproep tot laatste vertrek. Namen moeten overeenkomen met de scènelijst.', roomAvailability: 'Ruimtes', roomHint: 'Eén regel per ruimte: Ruimte | openingstijd tot sluitingstijd. Voorbeeld: Studio | 09:00-18:00.',
|
|
8
|
+
notes: 'Productienotities', notesPlaceholder: 'Rekwisieten, kleding, toegang of veiligheidsnotities voor de dag', presets: 'Begin met een concept', presetDay: 'Volledige repetitiedag', presetTight: 'Korte repetitie', presetShowcase: 'Doorloop voor presentatie',
|
|
9
|
+
resultSection: 'Repetitieschema', scheduled: 'Gepland', conflicts: 'Conflicten', unscheduled: 'Niet ingepland', minutes: 'minuten', timelineLabel: 'Repetitietijdlijn', callSheetLabel: 'Afdrukbaar repetitieschema', statusScheduled: 'Gepland', statusConflict: 'Oproep controleren', statusUnscheduled: 'Niet ingepland', issueDayOverflow: 'Deze sessie valt buiten het einde van de werkdag', issueParticipantAvailability: 'buiten de beschikbaarheid van', issueRoomAvailability: 'buiten de beschikbaarheid van de ruimte', issueMissingParticipantAvailability: 'geen beschikbaarheid ingevuld voor', issueMissingRoomAvailability: 'geen beschikbaarheid ingevuld voor ruimte',
|
|
10
|
+
participantSummary: 'Oproepen per persoon', roomSummary: 'Gebruik van ruimtes', scene: 'scène', scenes: 'scènes', firstCall: 'Eerste oproep', lastCall: 'Laatste vertrek', room: 'Ruimte', participants: 'Personen', time: 'Tijd', status: 'Status', detail: 'Detail', dateNotSet: 'Datum niet ingesteld', untitledProduction: 'Productie zonder titel', noRoom: 'Geen ruimte ingevuld', noPeople: 'Geen personen ingevuld', readyDetail: 'Klaar voor repetitie', inputIssuesTitle: 'Controleer deze regels', inputIssuesHint: 'Deze regels zijn overgeslagen tot ze zijn hersteld.', scenesInput: 'Scènes', peopleInput: 'Beschikbaarheid personen', roomsInput: 'Beschikbaarheid ruimtes', line: 'regel',
|
|
11
|
+
summaryReady: 'Dit concept kan met het productieteam worden nagekeken en afgedrukt.', summaryAttention: 'Controleer de gemarkeerde oproepen voordat je dit concept verstuurt.', summaryInputIssues: 'Herstel de overgeslagen regels voordat je op het schema vertrouwt.', noScenes: 'Voeg een scèneregel toe om de repetitiedag te tekenen.', exportData: 'JSON downloaden', print: 'Schema afdrukken', reset: 'Concept resetten', rulesNote: 'Dit is een planningsconcept, geen juridisch oproepschema. Controleer productieafspraken, locatie regels en lokale arbeidstijden voordat je het verstuurt.', rulesLinkLabel: 'Britse richtlijn als referentie lezen',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const faq = [
|
|
15
|
+
{ question: 'Wat is een repetitie oproepschema?', answer: 'Het is het praktische plan voor een repetitiedag: wanneer elke scène wordt geoefend, wie aanwezig moet zijn, welke ruimte wordt gebruikt en wat het team moet meenemen of onthouden. Deze planner maakt er een controleerbaar en afdrukbaar concept van.' },
|
|
16
|
+
{ question: 'Hoe formatteer ik de scènelijst?', answer: 'Gebruik één scène per regel en scheid naam, duur in minuten, ruimte, personen met komma s en optionele notities met verticale strepen. Voorbeeld: Gevechtsrepetitie | 45 | Studio | Alex, Bea | Rustig werken.' },
|
|
17
|
+
{ question: 'Wat betekent een conflict?', answer: 'Het betekent dat een persoon of ruimte niet de hele sessie beschikbaar is, of dat een beschikbaarheid ontbreekt. De sessie blijft zichtbaar zodat je haar kunt aanpassen.' },
|
|
18
|
+
{ question: 'Vindt de planner het perfecte schema?', answer: 'Nee. Hij gebruikt de volgorde die je invoert en controleert elke sessie tegen de opgegeven vensters. Reistijd, contracten, cast, parallelle ruimtes en wettelijke naleving worden niet geoptimaliseerd.' },
|
|
19
|
+
{ question: 'Waar worden namen en notities opgeslagen?', answer: 'Het huidige concept wordt in deze browser op dit apparaat opgeslagen. De planner uploadt die gegevens niet zelf. Gebruik Concept resetten of verwijder de sitegegevens om het te wissen.' },
|
|
20
|
+
{ question: 'Maakt het pauzeveld het schema wettelijk correct?', answer: 'Nee. Het voegt alleen een planningsruimte tussen sessies toe. Werktijd, rust, bescherming en arbeidsregels verschillen per plaats en productie.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const howTo = [
|
|
24
|
+
{ name: 'Geef de productie een naam', text: 'Vul de naam van de voorstelling of het project en de repetitiedatum in zodat het geprinte schema herkenbaar is.' },
|
|
25
|
+
{ name: 'Stel de werkdag in', text: 'Kies begin, einde en pauze tussen sessies. Met 15 minuten pauze begint na een scène van 60 minuten om 09:00 de volgende oproep om 10:15.' },
|
|
26
|
+
{ name: 'Voeg scènes toe', text: 'Zet duur, ruimte, personen en nuttige notities op elke regel.' },
|
|
27
|
+
{ name: 'Voeg beschikbaarheid toe', text: 'Geef elke persoon en ruimte een tijdvenster met dezelfde namen als in de scènelijst.' },
|
|
28
|
+
{ name: 'Controleer en deel', text: 'Lees de tijdlijn, los conflicten op en druk daarna het schema af of download het JSON concept.' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
32
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Planner voor repetitie oproepschema s', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Maak een concept van een repetitieschema met scènes, cast, ruimtes, beschikbaarheid en pauzes.' };
|
|
33
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Een repetitie oproepschema maken', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
|
|
34
|
+
|
|
35
|
+
export const content: RehearsalCallSheetLocaleContent = {
|
|
36
|
+
slug: 'repetitie-oproepschema-planner-theater', title: 'Repetitie oproepschema', description: 'Maak een repetitie oproepschema voor theater met scènes, cast, ruimtes, beschikbaarheid en pauzes. Vind conflicten vóór verzending.', ui,
|
|
37
|
+
seo: [
|
|
38
|
+
{ type: 'title', text: 'Een repetitie oproepschema maken', level: 2 }, { type: 'paragraph', html: 'Een repetitie oproepschema is het dagplan dat regie, toneelmeester, spelers en crew delen. Deze planner zet de volgorde van je scènes om in een tijdschema, controleert personen en ruimtes en toont wat je vóór verzending moet bevestigen.' },
|
|
39
|
+
{ type: 'title', text: 'Wat in een goed oproepschema hoort', level: 2 }, { type: 'paragraph', html: 'Een bruikbare lijst bevat meer dan scènenamen. Elke sessie heeft een duur, ruimte, betrokken personen en een notitie als rekwisieten, kostuums, voorbereiding of bijzondere werkomstandigheden belangrijk zijn.' },
|
|
40
|
+
{ type: 'table', headers: ['Invoer', 'Wat de planner doet'], rows: [['Scènes', 'Zet sessies in de opgegeven volgorde'], ['Personen', 'Controleert elke oproep tegen een tijdvenster'], ['Ruimtes', 'Controleert de ruimte voor de hele sessie'], ['Pauzes', 'Voegt een planningsruimte tussen scènes toe'], ['Notities', 'Houdt praktische context op het geprinte blad']] },
|
|
41
|
+
{ type: 'title', text: 'De tijdlijn lezen', level: 2 }, { type: 'paragraph', html: 'De tijdlijn volgt jouw volgorde en raadt geen artistieke prioriteit. Als een scène om 09:00 begint, 60 minuten duurt en 15 minuten pauze heeft, begint de volgende om 10:15. Een conflict betekent dat een persoon of ruimte niet bij het tijdvenster past.' },
|
|
42
|
+
{ type: 'title', text: 'Controleer het concept vóór verzending', level: 2 }, { type: 'list', items: ['Bevestig de volgorde met regie en toneelmeester.', 'Controleer reizen, toegang, kostuums, rekwisieten, bescherming en tijd om de ruimte opnieuw in te richten.', 'Vervang ontbrekende beschikbaarheid door een bevestigde oproep.', 'Controleer lokale afspraken en arbeidstijdregels met het verantwoordelijke team.'] },
|
|
43
|
+
{ type: 'title', text: 'Een transparant concept met menselijk oordeel', level: 2 }, { type: 'paragraph', html: 'De planner kent niet de beste artistieke volgorde, reistijd, toegangsbehoeften, bescherming of lokale regels. Hij levert een leesbaar schema dat het echte productieteam samen kan beoordelen.' },
|
|
44
|
+
{ type: 'tip', title: 'Gebruik beschikbaarheid als gesprekspunt', html: 'Een ontbrekend of tegenstrijdig venster is geen oordeel over een persoon. Het is een teken om de oproep te bevestigen, de volgorde of ruimte te veranderen of de informatie aan te vullen.' },
|
|
45
|
+
{ type: 'title', text: 'Een bruikbaar oproepschema afdrukken', level: 2 }, { type: 'paragraph', html: 'Los eerst de gemarkeerde oproepen op en druk daarna het schema voor de repetitieruimte af of download het JSON concept. Volgorde, tijden, ruimtes, personen, notities en controle status blijven bij elkaar.' },
|
|
46
|
+
], faq, bibliography, howTo, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[],
|
|
47
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: RehearsalCallSheetUI = {
|
|
6
|
+
productionSection: 'Produkcja', showName: 'Nazwa produkcji', showNamePlaceholder: 'Wesele', date: 'Data próby', timingSection: 'Dzień pracy', dayStart: 'Początek dnia', dayEnd: 'Koniec dnia', breakMinutes: 'Przerwa między scenami',
|
|
7
|
+
sceneSection: 'Sceny i sesje', scenesLabel: 'Lista scen', scenesHint: 'Jedna linia na scenę: Nazwa | minuty | sala | osoby oddzielone przecinkami | notatka. Przykład: Próba walki | 45 | Studio | Alex, Bea | Pracować powoli.', availabilitySection: 'Dostępność', participantAvailability: 'Osoby', participantHint: 'Jedna linia na osobę: Imię | pierwsze wezwanie do ostatniego wyjścia. Imiona muszą zgadzać się z listą scen.', roomAvailability: 'Sale', roomHint: 'Jedna linia na salę: Sala | otwarcie do zamknięcia. Przykład: Studio | 09:00-18:00.',
|
|
8
|
+
notes: 'Notatki produkcyjne', notesPlaceholder: 'Rekwizyty, kostiumy, dostęp lub uwagi dotyczące bezpieczeństwa', presets: 'Zacznij od szkicu', presetDay: 'Pełny dzień prób', presetTight: 'Krótka próba', presetShowcase: 'Próba pokazowa',
|
|
9
|
+
resultSection: 'Arkusz wezwań', scheduled: 'Zaplanowane', conflicts: 'Konflikty', unscheduled: 'Poza dniem', minutes: 'min', timelineLabel: 'Oś czasu próby', callSheetLabel: 'Arkusz wezwań do druku', statusScheduled: 'Zaplanowane', statusConflict: 'Sprawdź wezwanie', statusUnscheduled: 'Poza dniem', issueDayOverflow: 'Ta sesja wykracza poza koniec dnia pracy', issueParticipantAvailability: 'poza dostępnością osoby', issueRoomAvailability: 'poza dostępnością sali', issueMissingParticipantAvailability: 'brak zapisanej dostępności dla', issueMissingRoomAvailability: 'brak zapisanej dostępności dla sali',
|
|
10
|
+
participantSummary: 'Wezwania według osoby', roomSummary: 'Wykorzystanie sal', scene: 'scena', scenes: 'scen', firstCall: 'Pierwsze wezwanie', lastCall: 'Ostatnie wyjście', room: 'Sala', participants: 'Osoby', time: 'Czas', status: 'Status', detail: 'Szczegóły', dateNotSet: 'Data nieustalona', untitledProduction: 'Produkcja bez tytułu', noRoom: 'Nie podano sali', noPeople: 'Nie podano osób', readyDetail: 'Gotowe do próby', inputIssuesTitle: 'Sprawdź poniższe linie', inputIssuesHint: 'Te linie pominięto do czasu poprawy.', scenesInput: 'Sceny', peopleInput: 'Dostępność osób', roomsInput: 'Dostępność sal', line: 'linia',
|
|
11
|
+
summaryReady: 'Ten szkic można omówić z zespołem i wydrukować.', summaryAttention: 'Sprawdź zaznaczone wezwania przed wysłaniem szkicu.', summaryInputIssues: 'Popraw pominięte linie, zanim zaufasz temu harmonogramowi.', noScenes: 'Dodaj linię sceny, aby narysować dzień próby.', exportData: 'Pobierz JSON', print: 'Drukuj arkusz wezwań', reset: 'Resetuj szkic', rulesNote: 'To jest szkic planu, a nie prawny arkusz wezwań. Przed wysłaniem sprawdź umowy produkcyjne, zasady miejsca i lokalne przepisy o czasie pracy.', rulesLinkLabel: 'Przeczytaj brytyjskie wytyczne jako odniesienie',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const faq = [
|
|
15
|
+
{ question: 'Czym jest arkusz wezwań na próbę?', answer: 'To praktyczny plan dnia prób: kiedy pracowana jest każda scena, kto ma przyjść, z jakiej sali korzystać i co zespół ma przynieść lub zapamiętać. Planer zamienia te informacje w szkic do sprawdzenia i wydruku.' },
|
|
16
|
+
{ question: 'Jak sformatować listę scen?', answer: 'Wpisz jedną scenę w wierszu i oddziel pionowymi kreskami nazwę, czas w minutach, salę, osoby oddzielone przecinkami oraz opcjonalne notatki. Przykład: Próba walki | 45 | Studio | Alex, Bea | Pracować powoli.' },
|
|
17
|
+
{ question: 'Co oznacza konflikt?', answer: 'Oznacza, że osoba lub sala nie jest dostępna przez całą sesję albo brakuje wpisu dostępności. Sesja pozostaje widoczna, aby można ją było poprawić.' },
|
|
18
|
+
{ question: 'Czy planer znajduje idealny harmonogram?', answer: 'Nie. Używa podanej kolejności scen i sprawdza każdą sesję względem wpisanych przedziałów. Nie optymalizuje dojazdów, umów, obsady, równoległych sal ani zgodności z prawem.' },
|
|
19
|
+
{ question: 'Gdzie zapisywane są nazwiska i notatki?', answer: 'Bieżący szkic jest zapisywany w tej przeglądarce na tym urządzeniu. Planer sam nie wysyła tych danych. Użyj Resetuj szkic lub wyczyść dane witryny, aby go usunąć.' },
|
|
20
|
+
{ question: 'Czy pole przerwy zapewnia zgodność z prawem?', answer: 'Nie. Dodaje tylko planowaną przerwę między sesjami. Czas pracy, odpoczynek, bezpieczeństwo i zasady zatrudnienia zależą od miejsca i produkcji.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const howTo = [
|
|
24
|
+
{ name: 'Nadaj nazwę produkcji', text: 'Wpisz nazwę przedstawienia lub projektu oraz datę próby, aby wydrukowany arkusz był czytelny.' },
|
|
25
|
+
{ name: 'Ustaw dzień pracy', text: 'Wybierz początek, koniec i przerwę między sesjami. Przy przerwie 15 minut po scenie trwającej 60 minut od 09:00 następne wezwanie wypada o 10:15.' },
|
|
26
|
+
{ name: 'Dodaj sceny', text: 'W każdej linii podaj czas, salę, osoby i przydatne notatki.' },
|
|
27
|
+
{ name: 'Dodaj dostępność', text: 'Podaj przedział dla każdej osoby i sali, używając tych samych nazw co na liście scen.' },
|
|
28
|
+
{ name: 'Sprawdź i udostępnij', text: 'Przeczytaj oś czasu, rozwiąż konflikty, a następnie wydrukuj arkusz lub pobierz szkic JSON.' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
32
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Planer arkusza wezwań na próbę', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Utwórz szkic arkusza prób z scenami, obsadą, salami, dostępnością i przerwami.' };
|
|
33
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Jak utworzyć arkusz wezwań na próbę', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
|
|
34
|
+
|
|
35
|
+
export const content: RehearsalCallSheetLocaleContent = {
|
|
36
|
+
slug: 'planer-arkusz-wezwan-proba-teatr', title: 'Arkusz wezwań na próbę', description: 'Utwórz teatralny arkusz wezwań na próbę ze scenami, obsadą, salami, dostępnością i przerwami. Wykryj konflikty przed wysłaniem.', ui,
|
|
37
|
+
seo: [
|
|
38
|
+
{ type: 'title', text: 'Jak utworzyć arkusz wezwań na próbę', level: 2 }, { type: 'paragraph', html: 'Arkusz wezwań na próbę to plan dnia udostępniany przez reżyserię, inspicjenta, wykonawców i ekipę. Planer zamienia kolejność scen w szkic godzinowy, sprawdza osoby i sale oraz pokazuje, co trzeba potwierdzić przed wysłaniem.' },
|
|
39
|
+
{ type: 'title', text: 'Co powinien zawierać dobry arkusz', level: 2 }, { type: 'paragraph', html: 'Użyteczna lista to coś więcej niż tytuły scen. Każda sesja potrzebuje czasu, sali, uczestników i notatki, jeśli ważne są rekwizyty, kostiumy, przygotowanie lub szczególne warunki pracy.' },
|
|
40
|
+
{ type: 'table', headers: ['Dane', 'Co robi planer'], rows: [['Sceny', 'Układa sesje w podanej kolejności'], ['Osoby', 'Sprawdza każde wezwanie względem przedziału czasu'], ['Sale', 'Sprawdza salę przez całą sesję'], ['Przerwy', 'Dodaje planowany odstęp między scenami'], ['Notatki', 'Zachowuje praktyczny kontekst na wydruku']] },
|
|
41
|
+
{ type: 'title', text: 'Jak czytać oś czasu', level: 2 }, { type: 'paragraph', html: 'Oś czasu zachowuje twoją kolejność i nie zgaduje priorytetów artystycznych. Jeśli scena zaczyna się o 09:00, trwa 60 minut i ma 15 minut przerwy, następna zaczyna się o 10:15. Konflikt oznacza, że wezwanie nie pasuje do dostępności osoby lub sali.' },
|
|
42
|
+
{ type: 'title', text: 'Sprawdź szkic przed wysłaniem', level: 2 }, { type: 'list', items: ['Potwierdź kolejność z reżyserią i inspicjentem.', 'Sprawdź dojazd, dostęp, kostiumy, rekwizyty, bezpieczeństwo i czas na przygotowanie sali.', 'Zastąp brakującą dostępność potwierdzonym wezwaniem.', 'Sprawdź lokalne umowy i zasady czasu pracy z odpowiedzialnym zespołem.'] },
|
|
43
|
+
{ type: 'title', text: 'Przejrzysty szkic z ludzką oceną', level: 2 }, { type: 'paragraph', html: 'Narzędzie nie zna najlepszego porządku artystycznego, dojazdów, potrzeb dostępu, zasad bezpieczeństwa ani lokalnych przepisów. Daje czytelny arkusz, który prawdziwy zespół produkcyjny może wspólnie omówić.' },
|
|
44
|
+
{ type: 'tip', title: 'Potraktuj dostępność jako początek rozmowy', html: 'Brakujące lub sprzeczne okno nie jest oceną osoby. To sygnał, aby potwierdzić wezwanie, zmienić kolejność, zmienić salę lub uzupełnić dane.' },
|
|
45
|
+
{ type: 'title', text: 'Wydrukuj arkusz gotowy do użycia', level: 2 }, { type: 'paragraph', html: 'Najpierw rozwiąż zaznaczone wezwania, a potem wydrukuj arkusz do sali lub pobierz szkic JSON. Kolejność, godziny, sale, osoby, notatki i status kontroli pozostają razem.' },
|
|
46
|
+
], faq, bibliography, howTo, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[],
|
|
47
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
|
|
5
|
+
const ui: RehearsalCallSheetUI = {
|
|
6
|
+
productionSection: 'Produção', showName: 'Nome da produção', showNamePlaceholder: 'O auto da compadecida', date: 'Data do ensaio', timingSection: 'Dia de trabalho', dayStart: 'Início do dia', dayEnd: 'Fim do dia', breakMinutes: 'Pausa entre cenas',
|
|
7
|
+
sceneSection: 'Cenas e sessões', scenesLabel: 'Lista de cenas', scenesHint: 'Uma linha por cena: Nome | minutos | sala | pessoas separadas por vírgulas | nota. Exemplo: Luta | 45 | Estúdio | Alex, Bea | Trabalho lento.', availabilitySection: 'Disponibilidade', participantAvailability: 'Pessoas', participantHint: 'Uma linha por pessoa: Nome | primeira chamada até a saída. Os nomes devem coincidir com a lista de cenas.', roomAvailability: 'Salas', roomHint: 'Uma linha por sala: Sala | abertura até fechamento. Exemplo: Estúdio | 09:00-18:00.',
|
|
8
|
+
notes: 'Notas de produção', notesPlaceholder: 'Adereços, figurinos, acesso ou notas de segurança do dia', presets: 'Começar com um rascunho', presetDay: 'Dia inteiro de ensaio', presetTight: 'Ensaio concentrado', presetShowcase: 'Ensaio aberto',
|
|
9
|
+
resultSection: 'Folha de chamadas', scheduled: 'Programadas', conflicts: 'Conflitos', unscheduled: 'Fora do dia', minutes: 'minutos', timelineLabel: 'Linha do tempo do ensaio', callSheetLabel: 'Folha de chamadas para imprimir', statusScheduled: 'Programada', statusConflict: 'Verificar chamada', statusUnscheduled: 'Fora do dia', issueDayOverflow: 'Esta sessão ultrapassa o fim do dia de trabalho', issueParticipantAvailability: 'fora da disponibilidade de', issueRoomAvailability: 'fora da disponibilidade da sala', issueMissingParticipantAvailability: 'não há disponibilidade registrada para', issueMissingRoomAvailability: 'não há disponibilidade registrada para a sala',
|
|
10
|
+
participantSummary: 'Chamadas por pessoa', roomSummary: 'Uso das salas', scene: 'cena', scenes: 'cenas', firstCall: 'Primeira chamada', lastCall: 'Última saída', room: 'Sala', participants: 'Pessoas', time: 'Horário', status: 'Status', detail: 'Detalhe', dateNotSet: 'Data não definida', untitledProduction: 'Produção sem título', noRoom: 'Nenhuma sala indicada', noPeople: 'Nenhuma pessoa indicada', readyDetail: 'Pronta para o ensaio', inputIssuesTitle: 'Verifique estas linhas', inputIssuesHint: 'Estas linhas foram ignoradas até serem corrigidas.', scenesInput: 'Cenas', peopleInput: 'Disponibilidade das pessoas', roomsInput: 'Disponibilidade das salas', line: 'linha',
|
|
11
|
+
summaryReady: 'Este rascunho pode ser revisto com a equipe e impresso.', summaryAttention: 'Verifique as chamadas destacadas antes de enviar o rascunho.', summaryInputIssues: 'Corrija as linhas ignoradas antes de confiar no horário.', noScenes: 'Adicione uma linha de cena para desenhar o dia de ensaio.', exportData: 'Baixar JSON', print: 'Imprimir folha de chamadas', reset: 'Redefinir rascunho', rulesNote: 'Este é um rascunho de planejamento, não uma folha legal de chamadas. Verifique acordos de produção, regras do espaço e normas locais de trabalho antes de enviá-lo.', rulesLinkLabel: 'Ler a orientação britânica como referência',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const faq = [
|
|
15
|
+
{ question: 'O que é uma folha de chamadas de ensaio?', answer: 'É o plano prático de um dia de ensaio: quando cada cena será trabalhada, quem deve participar, qual sala será usada e o que a equipe deve levar ou lembrar. Esta ferramenta transforma essas informações em um rascunho para revisar e imprimir.' },
|
|
16
|
+
{ question: 'Como formatar a lista de cenas?', answer: 'Escreva uma cena por linha e separe com barras verticais o nome, a duração em minutos, a sala, as pessoas separadas por vírgulas e as notas opcionais. Exemplo: Luta | 45 | Estúdio | Alex, Bea | Trabalho lento.' },
|
|
17
|
+
{ question: 'O que significa um conflito?', answer: 'Significa que uma pessoa ou sala não está disponível durante toda a sessão ou que falta um registro de disponibilidade. A sessão continua visível para que você possa corrigi-la.' },
|
|
18
|
+
{ question: 'A ferramenta encontra o horário perfeito?', answer: 'Não. Ela usa a ordem informada e confere cada sessão com as janelas registradas. Não otimiza deslocamentos, contratos, elenco, salas simultâneas ou conformidade legal.' },
|
|
19
|
+
{ question: 'Onde nomes e notas ficam guardados?', answer: 'O rascunho atual fica salvo neste navegador e dispositivo. O planejador não envia esses dados por conta própria. Use Redefinir rascunho ou apague os dados do site para removê-lo.' },
|
|
20
|
+
{ question: 'O campo de pausa torna a folha legalmente correta?', answer: 'Não. Ele apenas acrescenta um intervalo de planejamento entre sessões. Jornada, descanso, proteção e regras trabalhistas dependem do local e da produção.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const howTo = [
|
|
24
|
+
{ name: 'Dê nome à produção', text: 'Informe o nome do espetáculo ou projeto e a data do ensaio para que a folha impressa seja identificável.' },
|
|
25
|
+
{ name: 'Defina o dia de trabalho', text: 'Escolha início, fim e pausa entre sessões. Com uma pausa de 15 minutos, uma cena de 60 minutos iniciada às 09:00 é seguida por uma chamada às 10:15.' },
|
|
26
|
+
{ name: 'Adicione as cenas', text: 'Inclua duração, sala, pessoas e notas úteis em cada linha.' },
|
|
27
|
+
{ name: 'Adicione a disponibilidade', text: 'Informe uma janela para cada pessoa e sala usando os mesmos nomes da lista de cenas.' },
|
|
28
|
+
{ name: 'Revise e compartilhe', text: 'Leia a linha do tempo, resolva conflitos e depois imprima a folha ou baixe o rascunho JSON.' },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
32
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Planejador de folha de chamadas de ensaio', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Crie um rascunho de folha de chamadas com cenas, elenco, salas, disponibilidade e pausas.' };
|
|
33
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Como criar uma folha de chamadas de ensaio', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
|
|
34
|
+
|
|
35
|
+
export const content: RehearsalCallSheetLocaleContent = {
|
|
36
|
+
slug: 'planejador-folha-chamadas-ensaio-teatro', title: 'Folha de chamadas de ensaio', description: 'Crie uma folha de chamadas de ensaio teatral com cenas, elenco, salas, disponibilidade e pausas. Encontre conflitos antes de enviar.', ui,
|
|
37
|
+
seo: [
|
|
38
|
+
{ type: 'title', text: 'Como criar uma folha de chamadas de ensaio', level: 2 }, { type: 'paragraph', html: 'A folha de chamadas de ensaio é o plano diário compartilhado por direção, produção, intérpretes e equipe. Este planejador transforma a ordem das cenas em um rascunho de horários, confere pessoas e salas e mostra o que precisa ser confirmado antes do envio.' },
|
|
39
|
+
{ type: 'title', text: 'O que uma boa folha precisa incluir', level: 2 }, { type: 'paragraph', html: 'Uma lista útil não contém apenas títulos. Cada sessão precisa de duração, sala, pessoas envolvidas e uma nota quando houver adereços, figurinos, preparação ou condições especiais de trabalho.' },
|
|
40
|
+
{ type: 'table', headers: ['Entrada', 'O que a ferramenta faz'], rows: [['Cenas', 'Coloca as sessões na ordem informada'], ['Pessoas', 'Confere cada chamada com uma janela de disponibilidade'], ['Salas', 'Confere a sala durante toda a sessão'], ['Pausas', 'Adiciona um intervalo de planejamento entre cenas'], ['Notas', 'Mantém o contexto prático na folha impressa']] },
|
|
41
|
+
{ type: 'title', text: 'Como ler a linha do tempo', level: 2 }, { type: 'paragraph', html: 'A linha do tempo respeita sua ordem e não adivinha prioridades artísticas. Se uma cena começa às 09:00, dura 60 minutos e tem 15 minutos de pausa, a próxima começa às 10:15. Um conflito indica que a chamada não cabe na disponibilidade de uma pessoa ou sala.' },
|
|
42
|
+
{ type: 'title', text: 'Revise o rascunho antes de enviar', level: 2 }, { type: 'list', items: ['Confirme a ordem com direção e produção.', 'Verifique deslocamentos, acesso, figurino, adereços, proteção e tempo para reorganizar a sala.', 'Troque disponibilidades ausentes por chamadas confirmadas.', 'Confira acordos locais e regras de jornada com a equipe responsável.'] },
|
|
43
|
+
{ type: 'title', text: 'Um rascunho transparente com julgamento humano', level: 2 }, { type: 'paragraph', html: 'A ferramenta não conhece a melhor ordem artística, deslocamentos, necessidades de acesso, proteção ou regras locais. Ela oferece uma folha legível para a equipe de produção revisar em conjunto.' },
|
|
44
|
+
{ type: 'tip', title: 'Use a disponibilidade para iniciar uma conversa', html: 'Uma janela ausente ou conflitante não é um julgamento sobre uma pessoa. É um sinal para confirmar a chamada, mudar a ordem, trocar de sala ou completar a informação.' },
|
|
45
|
+
{ type: 'title', text: 'Imprima uma folha pronta para usar', level: 2 }, { type: 'paragraph', html: 'Resolva primeiro as chamadas destacadas e depois imprima a folha para a sala ou baixe o rascunho JSON. Ordem, horários, salas, pessoas, notas e status de revisão permanecem juntos.' },
|
|
46
|
+
], faq, bibliography, howTo, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[],
|
|
47
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
import type { FAQItem, HowToStep, SEOSection } from '../../../types';
|
|
5
|
+
|
|
6
|
+
const ui: RehearsalCallSheetUI = {
|
|
7
|
+
productionSection: 'Постановка', showName: 'Название постановки', showNamePlaceholder: 'Например, Вишнёвый сад', date: 'Дата репетиции', timingSection: 'Время и перерывы', dayStart: 'Начало рабочего дня', dayEnd: 'Конец рабочего дня', breakMinutes: 'Перерыв между сценами, минут', sceneSection: 'Сцены и порядок работы', scenesLabel: 'Сцены', scenesHint: 'По одной сцене в строке: название | минуты | участники | помещение', availabilitySection: 'Доступность', participantAvailability: 'Доступность участников', participantHint: 'По одной строке: имя | начало | конец. Добавьте всех, кто нужен в сценах.', roomAvailability: 'Доступность помещений', roomHint: 'По одной строке: помещение | начало | конец.', notes: 'Заметки для команды', notesPlaceholder: 'Добавьте цели, реквизит или важные напоминания.', presets: 'Готовые примеры', presetDay: 'Обычный день', presetTight: 'Плотный график', presetShowcase: 'Показ', resultSection: 'Черновик расписания', scheduled: 'Запланировано', conflicts: 'Конфликты', unscheduled: 'Не запланировано', minutes: 'мин', timelineLabel: 'Линия времени', callSheetLabel: 'Лист вызовов', statusScheduled: 'Запланировано', statusConflict: 'Нужна проверка', statusUnscheduled: 'Не запланировано', issueDayOverflow: 'Сцена не помещается в рабочий день.', issueParticipantAvailability: 'Сцена выходит за доступность одного или нескольких участников.', issueRoomAvailability: 'Сцена выходит за доступность помещения.', issueMissingParticipantAvailability: 'Для участника не указано окно доступности.', issueMissingRoomAvailability: 'Для помещения не указано окно доступности.', participantSummary: 'Участники', roomSummary: 'Помещения', scene: 'Сцена', room: 'Помещение', participants: 'Участники', time: 'Время', status: 'Статус', detail: 'Подробности', dateNotSet: 'Дата не указана', untitledProduction: 'Постановка без названия', noRoom: 'Помещение не указано', noPeople: 'Участники не указаны', readyDetail: 'Все сцены помещаются в рабочий день и не выходят за указанные окна доступности.', scenes: 'сцен', firstCall: 'Первый вызов', lastCall: 'Последний вызов', inputIssuesTitle: 'Проверьте введённые данные', inputIssuesHint: 'Некоторые строки не удалось распознать, поэтому они не попали в расчёт.', scenesInput: 'Сцены', peopleInput: 'Участники', roomsInput: 'Помещения', line: 'строка', summaryReady: 'Этот черновик готов к проверке постановочной командой и печати.', summaryAttention: 'Проверьте отмеченные сцены перед тем, как отправлять лист вызовов.', summaryInputIssues: 'Исправьте строки с ошибками, чтобы расписание включало все введённые данные.', noScenes: 'Добавьте хотя бы одну сцену, чтобы построить лист вызовов.', exportData: 'Экспортировать данные', print: 'Печать', reset: 'Сбросить', rulesNote: 'Расчёт учитывает длительность сцен, перерывы, доступность участников и помещений. Финальное решение остаётся за постановочной командой.', rulesLinkLabel: 'Подробнее о правилах рабочего времени',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const faq: FAQItem[] = [
|
|
11
|
+
{ question: 'Что такое лист вызовов на репетицию?', answer: 'Это рабочий план дня, в котором указаны сцены, время вызова, участники, помещения и заметки для команды.' },
|
|
12
|
+
{ question: 'Как составить лист вызовов на репетицию?', answer: 'Введите длительность сцен, состав участников, помещения, рабочие часы и перерывы. Затем проверьте полученную линию времени и конфликты.' },
|
|
13
|
+
{ question: 'Почему сцена отмечена как требующая проверки?', answer: 'Сцена может пересекаться с недоступностью участника или помещения, либо выходить за пределы рабочего дня.' },
|
|
14
|
+
{ question: 'Получится ли идеальное расписание?', answer: 'Инструмент строит последовательный черновик и честно показывает ограничения. Постановочная команда должна проверить приоритеты и финальные решения.' },
|
|
15
|
+
{ question: 'Сохраняются ли мои данные?', answer: 'Нет. Данные обрабатываются в браузере и не отправляются на сервер этим инструментом.' },
|
|
16
|
+
{ question: 'Учитывает ли инструмент требования к рабочему времени?', answer: 'Он помогает увидеть рабочие часы и доступность, но не заменяет проверку применимых законов, договоров и правил организации.' },
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const howTo: HowToStep[] = [
|
|
20
|
+
{ name: 'Укажите постановку и дату', text: 'Введите название постановки и дату репетиции.' },
|
|
21
|
+
{ name: 'Добавьте сцены', text: 'Для каждой сцены укажите название, длительность, участников и помещение.' },
|
|
22
|
+
{ name: 'Добавьте окна доступности', text: 'Запишите доступность всех необходимых участников и помещений.' },
|
|
23
|
+
{ name: 'Проверьте линию времени', text: 'Просмотрите вызовы, перерывы, конфликты и сцены, которые не удалось запланировать.' },
|
|
24
|
+
{ name: 'Распечатайте черновик', text: 'Добавьте заметки команды и распечатайте лист после финальной проверки.' },
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
28
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Лист вызовов на репетицию', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Создайте понятный лист вызовов на театральную репетицию с учётом сцен, участников, помещений и доступности.' };
|
|
29
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Как составить лист вызовов на репетицию', step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) };
|
|
30
|
+
|
|
31
|
+
const seo: SEOSection[] = [
|
|
32
|
+
{ type: 'title', text: 'Как составить лист вызовов на репетицию', level: 2 },
|
|
33
|
+
{ type: 'paragraph', html: 'Хороший лист вызовов превращает план репетиции в понятный общий ориентир. Этот планировщик раскладывает сцены по времени, учитывает перерывы и отмечает ограничения доступности до начала дня.' },
|
|
34
|
+
{ type: 'title', text: 'Что должно быть в полезном листе вызовов', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Укажите название постановки, дату, продолжительность сцен, участников, помещения и рабочие часы. Чем точнее исходные данные, тем легче команде проверить черновик.' },
|
|
36
|
+
{ type: 'table', headers: ['Поле', 'Зачем оно нужно'], rows: [['Сцены', 'Определяют порядок работы и длительность'], ['Участники', 'Показывают, кто нужен в каждой сцене'], ['Помещения', 'Помогают избежать пересечений по площадкам'], ['Перерывы', 'Оставляют реалистичное время между сценами']] },
|
|
37
|
+
{ type: 'title', text: 'Как читать линию времени', level: 2 },
|
|
38
|
+
{ type: 'paragraph', html: 'Первый вызов показывает начало первой запланированной сцены, а последний вызов помогает увидеть конец рабочего плана. Статус Нужна проверка означает, что черновик требует решения команды.' },
|
|
39
|
+
{ type: 'title', text: 'Проверьте черновик перед отправкой', level: 2 },
|
|
40
|
+
{ type: 'list', items: ['Проверьте дату, рабочие часы и длительность перерывов.', 'Убедитесь, что имена участников и помещения написаны одинаково.', 'Разберите все конфликты доступности с постановочной командой.', 'Добавьте практические заметки о реквизите, целях и приоритетах дня.'] },
|
|
41
|
+
{ type: 'title', text: 'Прозрачный черновик оставляет решения людям', level: 2 },
|
|
42
|
+
{ type: 'paragraph', html: 'Автоматический план полезен как первая версия, но он не знает художественных приоритетов, усталости команды или срочности отдельной сцены. Используйте его для ясности, а не для замены постановочного решения.' },
|
|
43
|
+
{ type: 'tip', title: 'Используйте доступность как повод для разговора', html: 'Если исходная строка не распознана или сцена выходит за доступность, сначала исправьте данные, а затем отправляйте лист команде.' },
|
|
44
|
+
{ type: 'title', text: 'Распечатайте лист вызовов, которым удобно пользоваться', level: 2 },
|
|
45
|
+
{ type: 'paragraph', html: 'После проверки распечатайте краткий план и держите его рядом с заметками репетиции. Лист должен помогать команде быстро понять, где и когда нужно быть.' },
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
export const content: RehearsalCallSheetLocaleContent = { slug: 'planirovshchik-vyzovov-na-repetitsiyu-teatr', title: 'Лист вызовов на репетицию', description: 'Создайте лист вызовов на театральную репетицию из сцен, участников, помещений, доступности и перерывов. Распечатайте понятный план дня и проверьте конфликты до вызова команды.', ui, faq, howTo, seo, bibliography, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[] };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
import type { FAQItem, HowToStep, SEOSection } from '../../../types';
|
|
5
|
+
|
|
6
|
+
const ui: RehearsalCallSheetUI = {
|
|
7
|
+
productionSection: 'Produktion', showName: 'Produktionens namn', showNamePlaceholder: 'Till exempel Ett dockhem', date: 'Repetitionsdatum', timingSection: 'Tid och pauser', dayStart: 'Arbetsdagens start', dayEnd: 'Arbetsdagens slut', breakMinutes: 'Paus mellan scener, minuter', sceneSection: 'Scener och arbetsordning', scenesLabel: 'Scener', scenesHint: 'En scen per rad: namn | minuter | medverkande | rum', availabilitySection: 'Tillgänglighet', participantAvailability: 'De medverkandes tillgänglighet', participantHint: 'En rad per person: namn | start | slut. Lägg till alla som behövs i scenerna.', roomAvailability: 'Rummens tillgänglighet', roomHint: 'En rad per rum: rum | start | slut.', notes: 'Anteckningar till teamet', notesPlaceholder: 'Lägg till mål, rekvisita eller viktiga påminnelser.', presets: 'Färdiga exempel', presetDay: 'Vanlig dag', presetTight: 'Tajt schema', presetShowcase: 'Visning', resultSection: 'Schemautkast', scheduled: 'Planerade', conflicts: 'Konflikter', unscheduled: 'Ej planerade', minutes: 'min', timelineLabel: 'Tidslinje', callSheetLabel: 'Repetitionslista', statusScheduled: 'Planerad', statusConflict: 'Behöver granskas', statusUnscheduled: 'Ej planerad', issueDayOverflow: 'Scenen ryms inte inom arbetsdagen.', issueParticipantAvailability: 'Scenen ligger utanför en eller flera medverkandes tillgänglighet.', issueRoomAvailability: 'Scenen ligger utanför rummets tillgänglighet.', issueMissingParticipantAvailability: 'Ingen tillgänglighet är angiven för den medverkande.', issueMissingRoomAvailability: 'Ingen tillgänglighet är angiven för rummet.', participantSummary: 'Medverkande', roomSummary: 'Rum', scene: 'Scen', room: 'Rum', participants: 'Medverkande', time: 'Tid', status: 'Status', detail: 'Detaljer', dateNotSet: 'Datum saknas', untitledProduction: 'Produktion utan namn', noRoom: 'Inget rum angivet', noPeople: 'Inga medverkande angivna', readyDetail: 'Alla scener ryms inom arbetsdagen och de angivna tillgänglighetsfönstren.', scenes: 'scener', firstCall: 'Första kallelse', lastCall: 'Sista kallelse', inputIssuesTitle: 'Kontrollera den inmatade informationen', inputIssuesHint: 'Vissa rader kunde inte läsas och ingår därför inte i beräkningen.', scenesInput: 'Scener', peopleInput: 'Medverkande', roomsInput: 'Rum', line: 'rad', summaryReady: 'Det här utkastet är redo för produktionsteamets granskning och utskrift.', summaryAttention: 'Granska de markerade scenerna innan du skickar repetitionslistan.', summaryInputIssues: 'Rätta raderna med fel så att schemat innehåller alla uppgifter du skrev in.', noScenes: 'Lägg till minst en scen för att skapa en repetitionslista.', exportData: 'Exportera data', print: 'Skriv ut', reset: 'Återställ', rulesNote: 'Beräkningen tar hänsyn till scenlängd, pauser samt medverkandes och rums tillgänglighet. Det slutliga beslutet ligger hos produktionsteamet.', rulesLinkLabel: 'Läs mer om regler för arbetstid',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const faq: FAQItem[] = [
|
|
11
|
+
{ question: 'Vad är en repetitionslista?', answer: 'Det är dagens arbetsplan med scener, kallelsetider, medverkande, rum och anteckningar för teamet.' },
|
|
12
|
+
{ question: 'Hur skapar jag en repetitionslista?', answer: 'Skriv in scenlängder, medverkande, rum, arbetstider och pauser. Granska sedan tidslinjen och eventuella konflikter.' },
|
|
13
|
+
{ question: 'Varför är en scen markerad för granskning?', answer: 'Scenen kan krocka med en medverkandes eller ett rums otillgänglighet, eller ligga utanför arbetsdagen.' },
|
|
14
|
+
{ question: 'Skapar verktyget ett perfekt schema?', answer: 'Verktyget skapar ett konsekvent utkast och visar begränsningar tydligt. Produktionsteamet behöver fortfarande kontrollera prioriteringar och slutliga beslut.' },
|
|
15
|
+
{ question: 'Sparas mina uppgifter?', answer: 'Nej. Uppgifterna behandlas i webbläsaren och skickas inte till en server av det här verktyget.' },
|
|
16
|
+
{ question: 'Tar verktyget hänsyn till arbetstidsregler?', answer: 'Det hjälper dig att se arbetstider och tillgänglighet, men ersätter inte kontroll av lagar, avtal eller organisationens regler.' },
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const howTo: HowToStep[] = [
|
|
20
|
+
{ name: 'Ange produktion och datum', text: 'Skriv in produktionens namn och repetitionsdatum.' },
|
|
21
|
+
{ name: 'Lägg till scener', text: 'Ange namn, längd, medverkande och rum för varje scen.' },
|
|
22
|
+
{ name: 'Lägg till tillgänglighetsfönster', text: 'Skriv in tillgängligheten för alla medverkande och rum som behövs.' },
|
|
23
|
+
{ name: 'Granska tidslinjen', text: 'Kontrollera kallelser, pauser, konflikter och scener som inte kunde planeras.' },
|
|
24
|
+
{ name: 'Skriv ut utkastet', text: 'Lägg till teamets anteckningar och skriv ut listan efter den slutliga granskningen.' },
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
28
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Repetitionslista', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Skapa en tydlig repetitionslista för teater med scener, medverkande, rum och tillgänglighet.' };
|
|
29
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Så skapar du en repetitionslista', step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) };
|
|
30
|
+
|
|
31
|
+
const seo: SEOSection[] = [
|
|
32
|
+
{ type: 'title', text: 'Så skapar du en repetitionslista', level: 2 },
|
|
33
|
+
{ type: 'paragraph', html: 'En bra repetitionslista gör repetitionsplanen till en tydlig gemensam riktning. Planeraren placerar scener i tid, räknar med pauser och visar tillgänglighetsproblem innan dagen börjar.' },
|
|
34
|
+
{ type: 'title', text: 'Det här innehåller en användbar repetitionslista', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Ange produktionens namn, datum, scenlängder, medverkande, rum och arbetstider. Ju bättre underlag, desto enklare blir det för teamet att granska utkastet.' },
|
|
36
|
+
{ type: 'table', headers: ['Fält', 'Varför det behövs'], rows: [['Scener', 'Bestämmer arbetsordning och längd'], ['Medverkande', 'Visar vilka som behövs i varje scen'], ['Rum', 'Hjälper dig undvika krockar mellan platser'], ['Pauser', 'Ger realistisk tid mellan scenerna']] },
|
|
37
|
+
{ type: 'title', text: 'Så läser du tidslinjen', level: 2 },
|
|
38
|
+
{ type: 'paragraph', html: 'Första kallelsen visar när den första planerade scenen börjar och sista kallelsen visar slutet på arbetsplanen. Statusen Behöver granskas betyder att utkastet kräver ett beslut från teamet.' },
|
|
39
|
+
{ type: 'title', text: 'Granska utkastet innan du skickar det', level: 2 },
|
|
40
|
+
{ type: 'list', items: ['Kontrollera datum, arbetstider och pauslängder.', 'Se till att namn på medverkande och rum skrivs konsekvent.', 'Gå igenom alla tillgänglighetskonflikter med produktionsteamet.', 'Lägg till praktiska anteckningar om rekvisita, mål och dagens prioriteringar.'] },
|
|
41
|
+
{ type: 'title', text: 'Ett transparent utkast lämnar besluten till människor', level: 2 },
|
|
42
|
+
{ type: 'paragraph', html: 'Ett automatiskt schema är en bra första version, men det känner inte till konstnärliga prioriteringar, teamets trötthet eller brådskan i en scen. Använd det för tydlighet, inte som ersättning för produktionens omdöme.' },
|
|
43
|
+
{ type: 'tip', title: 'Använd tillgänglighet som utgångspunkt för samtal', html: 'Om en inmatad rad inte kan läsas eller en scen ligger utanför tillgängligheten, rätta uppgifterna innan du skickar listan till teamet.' },
|
|
44
|
+
{ type: 'title', text: 'Skriv ut en repetitionslista som fungerar i praktiken', level: 2 },
|
|
45
|
+
{ type: 'paragraph', html: 'När planen är granskad skriver du ut den korta versionen och håller den nära repetitionsanteckningarna. Listan ska göra det lätt att snabbt förstå var och när alla behöver vara.' },
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
export const content: RehearsalCallSheetLocaleContent = { slug: 'planerare-repetitionslista-teater', title: 'Repetitionslista för teater', description: 'Skapa en repetitionslista för teater med scener, medverkande, rum, tillgänglighet och pauser. Skriv ut en tydlig plan och upptäck konflikter före kallelsen.', ui, faq, howTo, seo, bibliography, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[] };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
|
+
import { bibliography } from '../bibliography';
|
|
3
|
+
import type { RehearsalCallSheetLocaleContent, RehearsalCallSheetUI } from '../entry';
|
|
4
|
+
import type { FAQItem, HowToStep, SEOSection } from '../../../types';
|
|
5
|
+
|
|
6
|
+
const ui: RehearsalCallSheetUI = {
|
|
7
|
+
productionSection: 'Prodüksiyon', showName: 'Prodüksiyon adı', showNamePlaceholder: 'Örneğin Bir Yaz Gecesi Rüyası', date: 'Prova tarihi', timingSection: 'Saatler ve molalar', dayStart: 'Çalışma başlangıcı', dayEnd: 'Çalışma bitişi', breakMinutes: 'Sahneler arası mola, dakika', sceneSection: 'Sahneler ve çalışma sırası', scenesLabel: 'Sahneler', scenesHint: 'Her satıra bir sahne: ad | dakika | katılımcılar | oda', availabilitySection: 'Uygunluk', participantAvailability: 'Katılımcı uygunluğu', participantHint: 'Her kişi için bir satır: ad | başlangıç | bitiş. Sahnelerde gereken herkesi ekleyin.', roomAvailability: 'Oda uygunluğu', roomHint: 'Her oda için bir satır: oda | başlangıç | bitiş.', notes: 'Ekip notları', notesPlaceholder: 'Hedefleri, aksesuarları veya önemli hatırlatmaları ekleyin.', presets: 'Hazır örnekler', presetDay: 'Normal gün', presetTight: 'Sıkışık program', presetShowcase: 'Gösterim', resultSection: 'Program taslağı', scheduled: 'Planlanan', conflicts: 'Çakışmalar', unscheduled: 'Planlanamayan', minutes: 'dk', timelineLabel: 'Zaman çizelgesi', callSheetLabel: 'Prova çağrı çizelgesi', statusScheduled: 'Planlandı', statusConflict: 'Kontrol gerekli', statusUnscheduled: 'Planlanamadı', issueDayOverflow: 'Sahne çalışma gününe sığmıyor.', issueParticipantAvailability: 'Sahne, bir veya daha fazla katılımcının uygunluk saatlerinin dışında kalıyor.', issueRoomAvailability: 'Sahne, odanın uygunluk saatlerinin dışında kalıyor.', issueMissingParticipantAvailability: 'Katılımcı için uygunluk aralığı belirtilmemiş.', issueMissingRoomAvailability: 'Oda için uygunluk aralığı belirtilmemiş.', participantSummary: 'Katılımcılar', roomSummary: 'Odalar', scene: 'Sahne', room: 'Oda', participants: 'Katılımcılar', time: 'Saat', status: 'Durum', detail: 'Ayrıntı', dateNotSet: 'Tarih belirtilmedi', untitledProduction: 'Adsız prodüksiyon', noRoom: 'Oda belirtilmedi', noPeople: 'Katılımcı belirtilmedi', readyDetail: 'Tüm sahneler çalışma gününe ve belirtilen uygunluk aralıklarına sığıyor.', scenes: 'sahne', firstCall: 'İlk çağrı', lastCall: 'Son çağrı', inputIssuesTitle: 'Girdiğiniz bilgileri kontrol edin', inputIssuesHint: 'Bazı satırlar okunamadı ve bu nedenle hesaplamaya dahil edilmedi.', scenesInput: 'Sahneler', peopleInput: 'Katılımcılar', roomsInput: 'Odalar', line: 'satır', summaryReady: 'Bu taslak prodüksiyon ekibinin incelemesine ve yazdırılmaya hazır.', summaryAttention: 'Çağrı çizelgesini göndermeden önce işaretli sahneleri inceleyin.', summaryInputIssues: 'Programın girdiğiniz tüm bilgileri içermesi için hatalı satırları düzeltin.', noScenes: 'Bir çağrı çizelgesi oluşturmak için en az bir sahne ekleyin.', exportData: 'Verileri dışa aktar', print: 'Yazdır', reset: 'Sıfırla', rulesNote: 'Hesaplama sahne sürelerini, molaları, katılımcı ve oda uygunluğunu dikkate alır. Son karar prodüksiyon ekibine aittir.', rulesLinkLabel: 'Çalışma süresi kuralları hakkında daha fazla bilgi',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const faq: FAQItem[] = [
|
|
11
|
+
{ question: 'Prova çağrı çizelgesi nedir?', answer: 'Sahneleri, çağrı saatlerini, katılımcıları, odaları ve ekip notlarını gösteren günlük çalışma planıdır.' },
|
|
12
|
+
{ question: 'Prova çağrı çizelgesi nasıl hazırlanır?', answer: 'Sahne sürelerini, katılımcıları, odaları, çalışma saatlerini ve molaları girin. Ardından zaman çizelgesini ve çakışmaları inceleyin.' },
|
|
13
|
+
{ question: 'Bir sahne neden kontrol gerekli olarak işaretlenir?', answer: 'Sahne bir katılımcının veya odanın uygun olmadığı bir zamana denk gelebilir ya da çalışma gününün dışına taşabilir.' },
|
|
14
|
+
{ question: 'Araç kusursuz bir program oluşturur mu?', answer: 'Araç tutarlı bir taslak oluşturur ve kısıtları açıkça gösterir. Öncelikleri ve son kararları yine prodüksiyon ekibi kontrol etmelidir.' },
|
|
15
|
+
{ question: 'Verilerim kaydediliyor mu?', answer: 'Hayır. Veriler tarayıcıda işlenir ve bu araç tarafından bir sunucuya gönderilmez.' },
|
|
16
|
+
{ question: 'Araç çalışma süresi kurallarını dikkate alır mı?', answer: 'Çalışma saatlerini ve uygunluğu görmenize yardımcı olur, ancak geçerli yasaları, sözleşmeleri veya kurum kurallarını kontrol etmenin yerini tutmaz.' },
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const howTo: HowToStep[] = [
|
|
20
|
+
{ name: 'Prodüksiyonu ve tarihi belirtin', text: 'Prodüksiyon adını ve prova tarihini girin.' },
|
|
21
|
+
{ name: 'Sahneleri ekleyin', text: 'Her sahne için ad, süre, katılımcılar ve oda bilgilerini belirtin.' },
|
|
22
|
+
{ name: 'Uygunluk aralıklarını ekleyin', text: 'Gereken tüm katılımcıların ve odaların uygunluk saatlerini yazın.' },
|
|
23
|
+
{ name: 'Zaman çizelgesini inceleyin', text: 'Çağrıları, molaları, çakışmaları ve planlanamayan sahneleri kontrol edin.' },
|
|
24
|
+
{ name: 'Taslağı yazdırın', text: 'Ekip notlarını ekleyin ve son kontrolden sonra çizelgeyi yazdırın.' },
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
28
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Prova çağrı çizelgesi', operatingSystem: 'All', applicationCategory: 'BusinessApplication', description: 'Sahneleri, katılımcıları, odaları ve uygunluğu dikkate alan anlaşılır bir tiyatro prova çağrı çizelgesi oluşturun.' };
|
|
29
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Prova çağrı çizelgesi nasıl hazırlanır', step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) };
|
|
30
|
+
|
|
31
|
+
const seo: SEOSection[] = [
|
|
32
|
+
{ type: 'title', text: 'Prova çağrı çizelgesi nasıl hazırlanır', level: 2 },
|
|
33
|
+
{ type: 'paragraph', html: 'İyi bir çağrı çizelgesi, prova planını herkesin anlayabileceği ortak bir plana dönüştürür. Bu planlayıcı sahneleri zamana yerleştirir, molaları hesaba katar ve gün başlamadan önce uygunluk sorunlarını gösterir.' },
|
|
34
|
+
{ type: 'title', text: 'Kullanışlı bir çağrı çizelgesinde neler bulunur', level: 2 },
|
|
35
|
+
{ type: 'paragraph', html: 'Prodüksiyon adını, tarihi, sahne sürelerini, katılımcıları, odaları ve çalışma saatlerini girin. Başlangıç verileri ne kadar doğruysa taslağı kontrol etmek o kadar kolay olur.' },
|
|
36
|
+
{ type: 'table', headers: ['Alan', 'Neden gerekli'], rows: [['Sahneler', 'Çalışma sırasını ve süreyi belirler'], ['Katılımcılar', 'Her sahnede kimin gerektiğini gösterir'], ['Odalar', 'Mekânlar arasındaki çakışmaları önlemeye yardımcı olur'], ['Molalar', 'Sahneler arasında gerçekçi zaman bırakır']] },
|
|
37
|
+
{ type: 'title', text: 'Zaman çizelgesi nasıl okunur', level: 2 },
|
|
38
|
+
{ type: 'paragraph', html: 'İlk çağrı, planlanan ilk sahnenin başlangıcını; son çağrı ise çalışma planının bittiği zamanı gösterir. Kontrol gerekli durumu, taslağın ekip tarafından karara bağlanması gerektiği anlamına gelir.' },
|
|
39
|
+
{ type: 'title', text: 'Göndermeden önce taslağı kontrol edin', level: 2 },
|
|
40
|
+
{ type: 'list', items: ['Tarihi, çalışma saatlerini ve mola sürelerini kontrol edin.', 'Katılımcı ve oda adlarının her yerde aynı yazıldığından emin olun.', 'Tüm uygunluk çakışmalarını prodüksiyon ekibiyle değerlendirin.', 'Aksesuar, hedef ve günün öncelikleriyle ilgili pratik notlar ekleyin.'] },
|
|
41
|
+
{ type: 'title', text: 'Şeffaf bir taslak insan kararlarına alan bırakır', level: 2 },
|
|
42
|
+
{ type: 'paragraph', html: 'Otomatik program iyi bir ilk sürümdür, ancak sanatsal öncelikleri, ekibin yorgunluğunu veya belirli bir sahnenin aciliyetini bilemez. Aracı prodüksiyon kararının yerine değil, netlik sağlamak için kullanın.' },
|
|
43
|
+
{ type: 'tip', title: 'Uygunluğu konuşma başlatıcı olarak kullanın', html: 'Bir girdi satırı okunamıyorsa veya bir sahne uygunluk saatlerinin dışındaysa, çizelgeyi ekibe göndermeden önce bilgileri düzeltin.' },
|
|
44
|
+
{ type: 'title', text: 'İşe yarayan bir prova çağrı çizelgesi yazdırın', level: 2 },
|
|
45
|
+
{ type: 'paragraph', html: 'Kontrolden sonra kısa planı yazdırın ve prova notlarının yanında bulundurun. Çizelge, ekibin nerede ve ne zaman olması gerektiğini hızlıca anlamasına yardımcı olmalıdır.' },
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
export const content: RehearsalCallSheetLocaleContent = { slug: 'tiyatro-prova-cagri-cetveli-planlayici', title: 'Tiyatro Prova Çağrı Çizelgesi', description: 'Sahneler, oyuncular, odalar, uygunluk ve molalardan bir tiyatro prova çağrı çizelgesi oluşturun. Açık bir günlük plan yazdırın ve çağrıdan önce çakışmaları görün.', ui, faq, howTo, seo, bibliography, schemas: [faqSchema, appSchema, howToSchema] as unknown as Record<string, unknown>[] };
|