oficina / meet Public

Clone
git clone https://amadan.net/oficina/meet

Plain git — no account needed to clone.

Download

Download this file

1# Slice 1 copy list
2
3Reviewed and approved by Paul on 2026-09-08 (copy-review, 52 strings, two edited). The strings below are the approved text.
4
5## Sign in (`/signin`)
6
7| String | Where |
8| --- | --- |
9| Sign in | `templates/signin.html`, `title` block |
10| Sign in to Meet | `templates/signin.html`, `content` block, page-header Title |
11| A sign in link should be on its way with a link to click. | `templates/signin.html`, `content` block, sent notice |
12| Email address | `templates/signin.html`, `content` block, field Label |
13| Send me a sign-in link | `templates/signin.html`, `content` block, submit button |
14| That does not look like an email address. | `auth.go`, `signin` (`err=address`) |
15| Too many sign-in attempts just now. Wait a few minutes and try again. | `auth.go`, `signin` (`err=rate`) |
16| That sign-in link has expired. Ask for a new one. | `auth.go`, `signin` (`err=expired`) |
17| Sign-in did not work. Try again. | `auth.go`, `signin` (default `err`) |
18
19## Welcome (`/welcome`)
20
21| String | Where |
22| --- | --- |
23| Signed in | `templates/welcome.html`, `title` block |
24| You're signed in | `templates/welcome.html`, `content` block, page-header Title |
25| You're signed in as {{.Email}}. This team's Meet has no meetings for you. If someone sent you a meeting link, open it again now. | `templates/welcome.html`, `content` block |
26| Sign out | now lives in the shell (`templates/layout.html`, account corner, shown whenever `.Viewer` is set) — no longer its own form on `templates/welcome.html` |
27
28## Start a call (`/meetings/start`)
29
30_added 2026-09-10, copy review waived for this round per suite #5_
31
32| String | Where |
33| --- | --- |
34| Start a call | `templates/index.html`, `content` block, submit button |
35| Call, {day} {month} {hour:minute} | `handlers_meetings.go`, `callTitle` — the title a started call gets, e.g. "Call, 10 Sep 09:15", formatted in the instance zone |
36
37## Meetings list (`/`)
38
39| String | Where |
40| --- | --- |
41| Meetings | `templates/index.html`, `title` block and page-header Title |
42| New meeting | `templates/index.html`, `content` block, `h2` |
43| Title | `templates/index.html`, `content` block, field Label |
44| Starts (%s), or leave blank to start now | `templates/index.html`, `content` block, field Label (`%s` is the instance zone, e.g. "Europe/Dublin") |
45| Enter the start as a date and time, or leave it blank to start now. | `handlers_meetings.go`, `parseStart` |
46| Give the meeting a title. | `handlers_meetings.go`, `createMeeting` |
47| Keep the title under 200 characters. | `handlers_meetings.go`, `createMeeting` |
48| Create meeting | `templates/index.html`, `content` block, submit button |
49| Upcoming | `templates/index.html`, `content` block, `h2` |
50| No meetings yet. Make one above and share its link. | `templates/index.html`, `content` block, empty-state Body |
51| Starts {{.Starts}} | `templates/index.html`, `content` block, upcoming row (when the meeting has a start time) |
52| Starts now | `templates/index.html`, `content` block, upcoming row (when the meeting has no start time) |
53| · no live link | `templates/index.html`, `content` block, upcoming row (when the meeting's link was revoked and not replaced) |
54| Replace the link | `templates/index.html`, `content` block, upcoming row action link |
55| End | `templates/index.html`, `content` block, upcoming row action link |
56| Ended meetings ({{len .Ended}}) | `templates/index.html`, `content` block, `details summary` |
57| Ended | `templates/index.html`, `content` block, ended row |
58
59## Link shown once (`/meetings`, `/meetings/{sqid}/links`)
60
61| String | Where |
62| --- | --- |
63| Your meeting link | `templates/link_once.html`, `title` block |
64| Meetings | `templates/link_once.html`, `content` block, back-nav Label |
65| {{.Title}} | `templates/link_once.html`, `content` block, page-header Title (the meeting's own title) |
66| Starts {{.Starts}}. | `templates/link_once.html`, `content` block (when the meeting has a start time) |
67| The old link has stopped working. | `templates/link_once.html`, `content` block (only when the link was replaced) |
68| This is the only time this link is shown. Copy it now and send it to the people you are meeting. | `templates/link_once.html`, `content` block |
69| Meeting link | `templates/link_once.html`, `content` block, link input aria-label |
70| Go to the meeting | `templates/link_once.html`, `content` block, link button |
71
72## Confirm: replace the link (`/meetings/{sqid}/links/replace`)
73
74| String | Where |
75| --- | --- |
76| Replace the link? | `handlers_meetings.go`, `confirmReplaceLink` (rendered as `title` block and page-header Title via `templates/confirm.html`) |
77| Meetings | `templates/confirm.html`, `content` block, back-nav Label |
78| Everyone holding the current link for "{{title}}" will get a not-found page. You will see the new link once. | `handlers_meetings.go`, `confirmReplaceLink` (rendered as the confirm Body) |
79| Replace the link | `handlers_meetings.go`, `confirmReplaceLink` (confirm-form Label) |
80| Cancel | `templates/confirm.html`, `content` block, confirm-form CancelLabel |
81
82## Confirm: end the meeting (`/meetings/{sqid}/end` GET)
83
84| String | Where |
85| --- | --- |
86| End the meeting? | `handlers_meetings.go`, `confirmEnd` (rendered as `title` block and page-header Title via `templates/confirm.html`) |
87| Meetings | `templates/confirm.html`, `content` block, back-nav Label |
88| "{{title}}" will close for everyone and its link will stop working. | `handlers_meetings.go`, `confirmEnd` (rendered as the confirm Body) |
89| End the meeting | `handlers_meetings.go`, `confirmEnd` (confirm-form Label) |
90| Cancel | `templates/confirm.html`, `content` block, confirm-form CancelLabel |
91
92## Holding page (`/m/{sqid}/join`)
93
94| String | Where |
95| --- | --- |
96| {{.Title}} | `templates/join.html`, `title` block and page-header Title (the meeting's own title) |
97| Meetings | `templates/join.html`, `content` block, back-nav Label (members only) |
98| Starts {{.Starts}}. | `templates/join.html`, `content` block (when the meeting has a start time) |
99| You are {{.Name}}, joining as a {{.Standing}}. | `templates/join.html`, `content` block (`{{.Standing}}` is "member" or "guest", from `standing.go`, `Standing.String`) |
100| This team's Meet has no relay yet. Calls usually connect only between people on the same network. | `templates/join.html`, `content` block (the floor notice; shown only when no relay is configured) |
101| Calls coming soon | `templates/join.html`, `content` block |
102| End the meeting | `templates/join.html`, `content` block, member-only link |
103
104## Error page (`/errors`, and any handler's `ErrorPage`)
105
106`templates/errors.html` now renders rastrillo's shared `error-page`
107partial (`{{template "error-page" dict "Status" .Status "Ref" .Ref}}`).
108The status, body sentence, and link labels it renders are rastrillo's
109copy, not Meet's, so they are not listed here.
110
111| String | Where |
112| --- | --- |
113| Something went wrong | `templates/errors.html`, `title` block (the browser tab title; the partial does not override it) |
114