initial commit
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
/* ============================================================================
|
||||
PAGE COPY - Knowledge and Impact + News
|
||||
----------------------------------------------------------------------------
|
||||
Section headings, intros and empty-state messages for the three sections
|
||||
this file set owns. The EN and AR strings are taken verbatim from
|
||||
docs/SHARPER_Website_Draft_Section_EN_AR.docx (§5 News and Updates,
|
||||
§6 Resources and Publications, §7 Knowledge Hub); the empty-state wording is
|
||||
the only addition, because the draft has no copy for "the CMS is empty".
|
||||
|
||||
This is page prose, not UI chrome, which is why it lives beside the routes
|
||||
instead of in ~/i18n/messages - the catalogue holds labels the whole site
|
||||
shares. Everything a reader could otherwise mistake for content - counts,
|
||||
figures, author names, dates - comes from Strapi, never from here: the draft
|
||||
marks its own numbers "TBD" and says they must not be published unconfirmed.
|
||||
========================================================================= */
|
||||
|
||||
import type { Locale } from "~/i18n";
|
||||
|
||||
export interface SectionCopy {
|
||||
/** H1 of the section. */
|
||||
readonly heading: string;
|
||||
/** The standfirst under the H1. */
|
||||
readonly intro: string;
|
||||
/** Shown when the section has no entries at all yet. */
|
||||
readonly emptyTitle: string;
|
||||
readonly emptyBody: string;
|
||||
/** `<meta name="description">` for the listing. */
|
||||
readonly metaDescription: string;
|
||||
}
|
||||
|
||||
type Localised<T> = Readonly<Record<Locale, T>>;
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
§6 RESOURCES AND PUBLICATIONS
|
||||
------------------------------------------------------------------------ */
|
||||
|
||||
export const RESOURCES_COPY: Localised<SectionCopy> = {
|
||||
en: {
|
||||
heading: "Reports, Research, and Publications",
|
||||
intro:
|
||||
"Findings, articles, and official documents produced through SHARP-ER’s research and dialogue work.",
|
||||
emptyTitle: "No publications have been added yet.",
|
||||
emptyBody:
|
||||
"Reports, research and official documents will appear here as they are published.",
|
||||
metaDescription:
|
||||
"Findings, articles and official documents produced through SHARP-ER’s research and dialogue work. Filter by topic, date, author and partner organisation.",
|
||||
},
|
||||
ar: {
|
||||
heading: "تقارير وأبحاث ومنشورات",
|
||||
intro:
|
||||
"نتائج ومقالات ووثائق رسمية صادرة عن أعمال البحث والحوار في مشروع SHARP-ER.",
|
||||
emptyTitle: "لم تُضف أي منشورات بعد.",
|
||||
emptyBody: "ستظهر هنا التقارير والأبحاث والوثائق الرسمية فور نشرها.",
|
||||
metaDescription:
|
||||
"نتائج ومقالات ووثائق رسمية صادرة عن أعمال البحث والحوار في مشروع SHARP-ER، مع إمكانية التصفية حسب الموضوع والتاريخ والكاتب والمنظمة الشريكة.",
|
||||
},
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
§7 KNOWLEDGE HUB
|
||||
------------------------------------------------------------------------ */
|
||||
|
||||
export const KNOWLEDGE_COPY: Localised<SectionCopy> = {
|
||||
en: {
|
||||
heading: "Learn From the SHARP Network",
|
||||
intro:
|
||||
"Training materials, dialogue guides, and lessons from civil society organisations putting SHARP-ER’s approach into practice.",
|
||||
emptyTitle: "The knowledge hub is being prepared.",
|
||||
emptyBody:
|
||||
"Training modules, dialogue guides, case studies and FAQs will appear here as they are published.",
|
||||
metaDescription:
|
||||
"Training modules and toolkits, Civil Society Law Session guides, case studies and plain-language FAQs from across the SHARP network.",
|
||||
},
|
||||
ar: {
|
||||
heading: "تعلّم من شبكة SHARP",
|
||||
intro:
|
||||
"مواد تدريبية، وأدلة حوار، ودروس مستفادة من منظمات المجتمع المدني التي تطبّق نهج SHARP-ER على أرض الواقع.",
|
||||
emptyTitle: "يجري تجهيز مركز المعرفة.",
|
||||
emptyBody:
|
||||
"ستظهر هنا الوحدات التدريبية وأدلة الحوار ودراسات الحالة والأسئلة الشائعة فور نشرها.",
|
||||
metaDescription:
|
||||
"وحدات تدريبية وأدلة عملية، وأدلة جلسات قانون المجتمع المدني، ودراسات حالة، وأسئلة شائعة بلغة مبسّطة من شبكة SHARP.",
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* The five kinds of material the hub carries - the values are the
|
||||
* `knowledge-item.itemType` enumeration in the CMS, verbatim.
|
||||
*
|
||||
* The LABELS live here rather than in ~/i18n because the CMS enumeration is
|
||||
* the source of truth and it keeps training modules and toolkits apart, so
|
||||
* each of the five needs its own distinct label - a filter cannot offer two
|
||||
* options reading the same. The wording is the draft's own.
|
||||
*/
|
||||
export const KNOWLEDGE_TYPE_LABELS: Localised<Readonly<Record<string, string>>> = {
|
||||
en: {
|
||||
"training-module": "Training modules",
|
||||
toolkit: "Toolkits",
|
||||
"law-session-guide": "Civil Society Law Session guides",
|
||||
"case-study": "Case studies",
|
||||
faq: "FAQs",
|
||||
},
|
||||
ar: {
|
||||
"training-module": "وحدات تدريبية",
|
||||
toolkit: "أدلة عملية",
|
||||
"law-session-guide": "أدلة جلسات قانون المجتمع المدني",
|
||||
"case-study": "دراسات حالة",
|
||||
faq: "الأسئلة الشائعة",
|
||||
},
|
||||
};
|
||||
|
||||
/** The one-line description that sits under each type. */
|
||||
export const KNOWLEDGE_TYPE_BLURBS: Localised<Readonly<Record<string, string>>> = {
|
||||
en: {
|
||||
"training-module": "From peer-to-peer learning and dialogue-facilitation training.",
|
||||
toolkit: "Practical materials civil society organisations can put to work directly.",
|
||||
"law-session-guide": "From joint sessions with the Commission on Civil Society (CCS).",
|
||||
"case-study": "From CSO sub-projects across the network.",
|
||||
faq: "Plain-language answers on rule of law, governance, and civic participation basics.",
|
||||
},
|
||||
ar: {
|
||||
"training-module": "من التعلّم بين الأقران وتدريب تيسير الحوار.",
|
||||
toolkit: "مواد عملية يمكن لمنظمات المجتمع المدني استخدامها مباشرة.",
|
||||
"law-session-guide": "من الجلسات المشتركة مع لجنة المجتمع المدني (CCS).",
|
||||
"case-study": "من المشاريع الفرعية لمنظمات المجتمع المدني عبر الشبكة.",
|
||||
faq: "إجابات بلغة مبسّطة حول أساسيات سيادة القانون والحوكمة والمشاركة المدنية.",
|
||||
},
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
§5 NEWS AND UPDATES
|
||||
------------------------------------------------------------------------ */
|
||||
|
||||
export interface NewsCopy extends SectionCopy {
|
||||
/** Description of the "SHARP-ER News" tab. */
|
||||
readonly projectBlurb: string;
|
||||
/** Description of the "From the Network" tab. */
|
||||
readonly networkBlurb: string;
|
||||
}
|
||||
|
||||
export const NEWS_COPY: Localised<NewsCopy> = {
|
||||
en: {
|
||||
heading: "News from SHARP-ER and the Network",
|
||||
intro:
|
||||
"Milestones from the project team, and updates from the civil society organisations we work with.",
|
||||
projectBlurb:
|
||||
"Official updates on milestones, campaign launches, publications, and events.",
|
||||
networkBlurb:
|
||||
"Updates submitted by CSOs granted as part of the consortium, each card crediting the organisation.",
|
||||
emptyTitle: "There are no updates to show yet.",
|
||||
emptyBody:
|
||||
"News from the project team and from the SHARP network will appear here.",
|
||||
metaDescription:
|
||||
"Milestones from the SHARP-ER project team, and updates from the civil society organisations we work with across Libya.",
|
||||
},
|
||||
ar: {
|
||||
heading: "أخبار من SHARP-ER ومن الشبكة",
|
||||
intro:
|
||||
"محطات رئيسية من فريق المشروع، ومستجدات من منظمات المجتمع المدني التي نعمل معها.",
|
||||
projectBlurb:
|
||||
"تحديثات رسمية حول المحطات الرئيسية، وإطلاق الحملات، والمنشورات، والفعاليات.",
|
||||
networkBlurb:
|
||||
"مستجدات تنشرها منظمات المجتمع المدني الشريكة ضمن الائتلاف، وتُنسب كل بطاقة إلى المنظمة الناشرة.",
|
||||
emptyTitle: "لا توجد مستجدات لعرضها بعد.",
|
||||
emptyBody: "ستظهر هنا أخبار فريق المشروع ومستجدات شبكة SHARP.",
|
||||
metaDescription:
|
||||
"محطات رئيسية من فريق مشروع SHARP-ER، ومستجدات من منظمات المجتمع المدني التي نعمل معها في مختلف أنحاء ليبيا.",
|
||||
},
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
DETAIL PAGES
|
||||
------------------------------------------------------------------------ */
|
||||
|
||||
export interface DetailCopy {
|
||||
/** "Back to all publications" - the link out of a detail page. */
|
||||
readonly backToListing: string;
|
||||
/** Heading of the metadata block. */
|
||||
readonly aboutThis: string;
|
||||
readonly published: string;
|
||||
readonly author: string;
|
||||
readonly partner: string;
|
||||
readonly topics: string;
|
||||
readonly openExternal: string;
|
||||
}
|
||||
|
||||
export const DETAIL_COPY: Localised<DetailCopy> = {
|
||||
en: {
|
||||
backToListing: "Back to all publications",
|
||||
aboutThis: "About this publication",
|
||||
published: "Published",
|
||||
author: "Author",
|
||||
partner: "Partner organisation",
|
||||
topics: "Topics",
|
||||
openExternal: "Open the document",
|
||||
},
|
||||
ar: {
|
||||
backToListing: "العودة إلى جميع المنشورات",
|
||||
aboutThis: "عن هذا المنشور",
|
||||
published: "تاريخ النشر",
|
||||
author: "الكاتب",
|
||||
partner: "المنظمة الشريكة",
|
||||
topics: "المواضيع",
|
||||
openExternal: "فتح الوثيقة",
|
||||
},
|
||||
};
|
||||
|
||||
export const KNOWLEDGE_DETAIL_COPY: Localised<Pick<DetailCopy, "backToListing" | "aboutThis">> =
|
||||
{
|
||||
en: {
|
||||
backToListing: "Back to the knowledge hub",
|
||||
aboutThis: "About this material",
|
||||
},
|
||||
ar: {
|
||||
backToListing: "العودة إلى مركز المعرفة",
|
||||
aboutThis: "عن هذه المادة",
|
||||
},
|
||||
};
|
||||
|
||||
export const NEWS_DETAIL_COPY: Localised<Pick<DetailCopy, "backToListing" | "aboutThis">> = {
|
||||
en: {
|
||||
backToListing: "Back to all news",
|
||||
aboutThis: "About this update",
|
||||
},
|
||||
ar: {
|
||||
backToListing: "العودة إلى جميع الأخبار",
|
||||
aboutThis: "عن هذا المستجد",
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user