From 5cb30b650b1e68beabf0a301ad362bdac3382c9e Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Sat, 16 Nov 2024 23:58:45 +0530 Subject: [PATCH 01/17] Add quote photo in hover card --- shared/locales/en/website-partners.json | 1 + website/public/assets/partners/avatar.jpg | Bin 0 -> 7934 bytes .../(website)/partners/(sections)/ngocard.tsx | 12 +++++++++++- .../(website)/partners/(sections)/ngolist.tsx | 3 +++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 website/public/assets/partners/avatar.jpg diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index e906cea23..8771673fc 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -84,6 +84,7 @@ ], "org-quote-author": "Regína Bjarnadóttir", "org-photo": "", + "org-quote-photo": "avatar.jpg", "org-website": "https://www.aurorafoundation.is/en", "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" diff --git a/website/public/assets/partners/avatar.jpg b/website/public/assets/partners/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2367c268c7ff0d334db335ff6ac7cfdcd62410f7 GIT binary patch literal 7934 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 literal 0 HcmV?d00001 diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index 4793ff5cd..131481720 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -70,6 +70,7 @@ type NgoHoverCardType = { }[][]; quote?: QuoteType; quoteAuthor?: string; + quotePhoto?: string | null; orgFoundation: string; orgHeadquarter: string; orgWebsite?: string; @@ -325,7 +326,16 @@ export default async function NgoCard({ ))} -
+
+ {ngoHoverCard.quotePhoto && ( + {ngoHoverCard.quoteAuthor} + )} {ngoHoverCard.quoteAuthor}, {orgShortName} diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx index 1c44be729..fe3325333 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx @@ -57,6 +57,7 @@ type NgoHoverCardType = { }[][]; quote?: QuoteType; quoteAuthor?: string; + quotePhoto?: string | null; orgFoundation: string; orgHeadquarter: string; orgWebsite?: string; @@ -97,6 +98,7 @@ type NgoEntryJSON = { }[][]; 'org-quote': []; 'org-quote-author': string; + 'org-quote-photo': string; 'org-photo': string; 'org-website': string; 'org-instagram': string; @@ -150,6 +152,7 @@ export async function NgoList({ lang }: DefaultParams) { orgDescriptionParagraphs: ngoArray[i]['org-description-paragraphs'], quote: ngoArray[i]['org-quote'] ?? null, quoteAuthor: ngoArray[i]['org-quote-author'] ?? null, + quotePhoto: ngoArray[i]['org-quote-photo'] ? image_base_path.concat(ngoArray[i]['org-quote-photo']) : null, orgFoundation: ngoArray[i]['org-foundation'], orgHeadquarter: ngoArray[i]['org-headquarter'], orgWebsite: ngoArray[i]['org-website'] ?? null, From 18e0b971633b0d287cf72eee55aad2e889daba25 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Mon, 18 Nov 2024 21:53:59 +0530 Subject: [PATCH 02/17] Add fundraiser badge to encourage donations --- shared/locales/en/website-partners.json | 12 ++++- .../(website)/partners/(sections)/ngocard.tsx | 48 +++++++++++++++++++ .../(website)/partners/(sections)/ngolist.tsx | 9 ++++ 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index 8771673fc..d4fc193b3 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -28,7 +28,8 @@ "founded": "Founded", "partner-since": "Partner since", "headquarter": "Headquarter", - "mission": "Mission" + "mission": "Mission", + "fundraiser": "Fundraiser" }, "ngos": [ { @@ -291,6 +292,15 @@ } ] ], + "org-fundraiser-text": [ + { + "text": "SLAES is currently fundraising: " + }, + { + "text": "Rebuilding Lives", + "href": "https://www.facebook.com/Sierra.Leone.Association.of.Ebola.Survivors/" + } + ], "org-quote": [ { "text": "It’s more than financial support—it’s a step " diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index 131481720..d020971eb 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -32,6 +32,10 @@ type QuoteType = { color: FontColor; }[]; +type FundRaiserBadgeType = { + fundRaiserTranslation: string; +}; + type SdgBadgeType = { hoverCardOrgName: string; sdgNumber: number; @@ -78,6 +82,10 @@ type NgoHoverCardType = { orgInstagram?: string; orgLinkedIn?: string; orgYoutube?: string; + orgFundRaiserText?: { + text: string; + href?: string; + }[]; }; type NgoCardProps = { @@ -181,6 +189,23 @@ function SDGBadge({ ); } + +function FundraiserBadge({ fundRaiserTranslation }: FundRaiserBadgeType) { + return ( + + + + + {fundRaiserTranslation} + + + + {/**/} + {/*TODO: Should anything go here?*/} + {/**/} + + ); +} export default async function NgoCard({ orgShortName, orgMission, @@ -203,6 +228,8 @@ export default async function NgoCard({ ngoHoverCard.orgYoutube ); + const showFundRaiser: boolean = !!ngoHoverCard.orgFundRaiserText; + return ( @@ -250,6 +277,7 @@ export default async function NgoCard({ translatorSdgMission2={translator.t('sdg.sdg' + sdgBadge.sdgNumber.toString() + '-mission-2')} /> ))} + {showFundRaiser && } @@ -296,6 +324,26 @@ export default async function NgoCard({
+ {showFundRaiser && ( +
+ + + {ngoHoverCard.orgFundRaiserText.map((fragment, index) => { + return fragment.href ? ( + + + {fragment.text} + + + ) : ( + + {fragment.text} + + ); + })} + +
+ )} {ngoHoverCard.orgDescriptionParagraphs.map((paragraph, index) => { return (
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx index fe3325333..a1aca0d3a 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx @@ -65,6 +65,10 @@ type NgoHoverCardType = { orgInstagram?: string; orgLinkedIn?: string; orgYoutube?: string; + orgFundRaiserText?: { + text: string; + href?: string; + }[]; }; type NgoCardProps = { @@ -105,6 +109,10 @@ type NgoEntryJSON = { 'org-facebook': string; 'org-linkedin': string; 'org-youtube': string; + 'org-fundraiser-text': { + text: string; + href?: string; + }[]; }; export async function NgoList({ lang }: DefaultParams) { @@ -160,6 +168,7 @@ export async function NgoList({ lang }: DefaultParams) { orgInstagram: ngoArray[i]['org-instagram'] ?? null, orgLinkedIn: ngoArray[i]['org-linkedin'] ?? null, orgYoutube: ngoArray[i]['org-youtube'] ?? null, + orgFundRaiserText: ngoArray[i]['org-fundraiser-text'] ?? null, }; const ngoCardProps: NgoCardProps = { From 828ae886ed932f02fa8f2b1c4a4c215c85ed626c Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Mon, 18 Nov 2024 22:01:10 +0530 Subject: [PATCH 03/17] Add ? to handle for missing fundraiser texts --- .../[lang]/[region]/(website)/partners/(sections)/ngocard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index d020971eb..dee3cbfc6 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -328,7 +328,7 @@ export default async function NgoCard({
- {ngoHoverCard.orgFundRaiserText.map((fragment, index) => { + {ngoHoverCard.orgFundRaiserText?.map((fragment, index) => { return fragment.href ? ( From 102d57b6b3c31ffa83aa3dcb61b9fc5079c84080 Mon Sep 17 00:00:00 2001 From: Sandino Scheidegger Date: Mon, 18 Nov 2024 19:50:17 +0100 Subject: [PATCH 04/17] Added photo for quote from Aurora and changed url for campaign --- shared/locales/en/website-partners.json | 2 +- .../(website)/partners/(assets)/logo-aurora.png | Bin 0 -> 13380 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 website/src/app/[lang]/[region]/(website)/partners/(assets)/logo-aurora.png diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index d4fc193b3..efafb2888 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -298,7 +298,7 @@ }, { "text": "Rebuilding Lives", - "href": "https://www.facebook.com/Sierra.Leone.Association.of.Ebola.Survivors/" + "href": "https://socialincome.org/campaign/MZmXEVHlDjOOFOMk82jW" } ], "org-quote": [ diff --git a/website/src/app/[lang]/[region]/(website)/partners/(assets)/logo-aurora.png b/website/src/app/[lang]/[region]/(website)/partners/(assets)/logo-aurora.png new file mode 100644 index 0000000000000000000000000000000000000000..ecec9e222db614fd4bf7ab77f1e598aee94d4301 GIT binary patch literal 13380 zcmbWe1yG#Zwk?c9umrc@65O?Mf(3ViyGu9j9wfL!aMvKg-Gc^qZCnG5yF9YbKKsA- zuk+r!^}71=vE~?4)~wZ4Uw>6nkU~QyM23QbLi;2wuJU@+{<9$=yzY5RL}6YJZ$Q#o zPEb%NSbsKXsI&}xC@AJg zx!c*=I|1AUDgLqxcs>7fn}vexFNm{^Acg23LbA{DN@O2_j%H+h%xp|1tgP&0JbcVX z+(z6SeB8W7jAZPr?3^sD94xHdOl)ibE_MJb7unw*idRBMQ*(fdxa8k-uUCQ;md?%~ z01Jzon;Wwm2Q$#of`yHbkB^0worRs9=@r4`mRTF0-Boqg9EuZ+WtjuYQkb> zYi4I=@9gx7W%~yUvIIH8`J+h{%-`Y(Uq6~hvPqLv9tS!!pT{}_0^5P1M(ly zPHG+?GZqyyC!mX?iJ64!t4zv2-hcof9nFlKfsSfGpzXhNrSxyfWb9nbZ0uyT@MyjsCA-QxkwW(9zE5)n_X^BMUPYki7*3**}p4d<5D89bbuG)p7i#LS7#5 z$==D?$lk>4lei$otJ}<0R;B=BGfoq89u6)hV|Gp+CQcq+VBNG!N z9wW|wj~54;xco`(pYi`HbyJ|ptBwDU)!3AmjopNujme0Mi;ancozsko&y3ZaiHDbm zm(SSTl!ML8=-<{99j#txo008*wfaYu>8nLfJ|i|ZE_M?pb7K=OCQdF6Rwg5Mc5@~( z6E0Rx6EkBYHglst1^riz0Hm#)UbE-%_Y_ezbNKtr){5+}vH%#F{3&-q3X?y1HZ!I8 z`?l48h{ykk`S0;=mS(R;{}0Lk7rPVC+}X{@(M;6hHFp1#`eOOt>31@6{XeV!pJnr3 zvi_6$|5lIxkLv#pj)|p_y@lCp6J??J;}6T9Uh}Wiu>AkC_Sduj(wF`Xe{FVuPXB4N zuNVKcYBT#+(~hr=n31a41qzB8_mjA&ntR4^yGMqe#J86h-@}<^9q<~zmo$vHk|~h{ z96}1g)_NeyU>I^ZKcId$Ffimf@^DNxJW42>8A^6 z2e*4Z=ec-xlh|BtN~Aw$I3>UER7VqTUs9IiYHI3x8$b2iXg2+jzgX=X?5Q(~qsw{g z#|@u&0`tXriBy9}=zw&yORGx^($-8wkCGys!Ee~dFGP zITosb1t@`k=lAse+T988xpeMa6R|Ecjd9lZ@#ouF4d1&bbK@)>aWP*(c@0NFNdRzyE*`t�{Yll^aEGxTI~iC?gdwMb{~O@-PsQ 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 za6 FzW~ZAtvdh! literal 0 HcmV?d00001 From b5a11f15ca24707bf2fd78c18f763cf82485e868 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Thu, 21 Nov 2024 01:55:27 +0530 Subject: [PATCH 05/17] Add dynamic URLs for NGOs --- .../partners/(components)/PartnerBadges.tsx | 122 ++++++++++ .../partners/(components)/PartnerHome.tsx | 220 ++++++++++++++++++ .../(website)/partners/(sections)/ngocard.tsx | 193 +-------------- .../(website)/partners/(sections)/ngolist.tsx | 112 +-------- .../partners/(types)/PartnerBadges.ts | 41 ++++ .../partners/(types)/PartnerCards.ts | 102 ++++++++ .../(website)/partners/[orgLongName]/page.tsx | 94 ++++++++ 7 files changed, 596 insertions(+), 288 deletions(-) create mode 100644 website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges.tsx create mode 100644 website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx create mode 100644 website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges.ts create mode 100644 website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts create mode 100644 website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges.tsx new file mode 100644 index 000000000..8d6c78446 --- /dev/null +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges.tsx @@ -0,0 +1,122 @@ +import SdgIcon from '@/app/[lang]/[region]/(website)/partners/(assets)/sdg-circle.svg'; +import { + FundRaiserBadgeType, + RecipientsBadgeType, + SdgBadgeType, +} from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; +import { UsersIcon } from '@heroicons/react/24/solid'; +import { Badge, HoverCard, HoverCardContent, HoverCardTrigger, Separator, Typography } from '@socialincome/ui'; +import { cn } from '@socialincome/ui/src/lib/utils'; +import Image from 'next/image'; + +function RecipientsBadge({ + hoverCardOrgName, + hoverCardTotalRecipients, + hoverCardTotalActiveRecipients, + hoverCardTotalSuspendedRecipients, + hoverCardTotalFormerRecipients, + isInsideHoverCard, + translatorBadgeRecipients, + translatorBadgeRecipientsBy, + translatorBadgeActive, + translatorBadgeFormer, + translatorBadgeSuspended, +}: RecipientsBadgeType) { + let badgeClassName = 'bg-primary hover:bg-primary text-primary bg-opacity-10 hover:bg-opacity-100 hover:text-white'; + if (isInsideHoverCard) { + badgeClassName = cn(badgeClassName, ' py-2'); + } + const userIconClassName = isInsideHoverCard ? 'mr-2 h-5 w-5 rounded-full' : 'mr-1 h-4 w-4 rounded-full'; + + return ( + + + + + + {hoverCardTotalRecipients || 0} {isInsideHoverCard ? translatorBadgeRecipients : ''} + + + + +
+ + {hoverCardTotalRecipients || 0} {translatorBadgeRecipientsBy} {hoverCardOrgName} + +
+ +
+ + + {hoverCardTotalActiveRecipients || 0} {translatorBadgeActive} + + + + + {hoverCardTotalFormerRecipients || 0} {translatorBadgeFormer} + + + + + {hoverCardTotalSuspendedRecipients || 0} {translatorBadgeSuspended} + + +
+
+
+ ); +} + +function SDGBadge({ + hoverCardOrgName, + sdgNumber, + translatorSdg, + translatorSdgTitle, + translatorSdgMission1, + translatorSdgMission2, +}: SdgBadgeType) { + return ( + + + + + {translatorSdgTitle} + + + + +
+ SDG Icon + + {translatorSdg} {sdgNumber?.toString() || ''}: {translatorSdgTitle} + +
+ +
+ + {translatorSdgMission1} {hoverCardOrgName} {translatorSdgMission2} + +
+
+
+ ); +} + +function FundraiserBadge({ fundRaiserTranslation }: FundRaiserBadgeType) { + return ( + + + + + {fundRaiserTranslation} + + + + {/**/} + {/*TODO: Should anything go here?*/} + {/**/} + + ); +} + +export { FundraiserBadge, RecipientsBadge, SDGBadge }; diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx new file mode 100644 index 000000000..df016259c --- /dev/null +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx @@ -0,0 +1,220 @@ +'use client'; +//TODO: use-client still async-await, need to figure this out +import { FundraiserBadge, RecipientsBadge } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges'; +import { NgoHomeProps } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; +import { Badge, Separator, Typography } from '@socialincome/ui'; +import { SL } from 'country-flag-icons/react/1x1'; +import Image from 'next/image'; +import Link from 'next/link'; + +export function PartnerHome({ + ngoHoverCard, + recipientsBadge, + partnerSinceTranslation, + orgMission, + countryLongName, + badgeRecipientTranslation, + badgeRecipientTranslationBy, + badgeActiveTranslation, + badgeFormerTranslation, + badgeSuspendedTranslation, + countryBadge, + fundRaiserTranslation, + orgShortName, + missionTranslation, + foundedTranslation, + headquarterTranslation, + moreLinksTranslation, + websiteTranslation, + facebookTranslation, + instagramTranslation, + linkedinTranslation, + youtubeTranslation, +}: NgoHomeProps) { + const showVisitOnline: boolean = !!( + ngoHoverCard.orgInstagram || + ngoHoverCard.orgFacebook || + ngoHoverCard.orgWebsite || + ngoHoverCard.orgLinkedIn || + ngoHoverCard.orgYoutube + ); + + const showFundRaiser: boolean = !!ngoHoverCard.orgFundRaiserText; + return ( +
+
+
+ Organization Photo +
+
+ + {ngoHoverCard.orgLongName} + +
+
+
+
+
+
+ + {partnerSinceTranslation} {ngoHoverCard.partnershipStart} + +
+
+ + + {countryBadge?.countryFlagComponent || } + + {countryLongName} + + +
+
+ {showFundRaiser && ( +
+ + + {ngoHoverCard.orgFundRaiserText?.map((fragment, index) => { + return fragment.href ? ( + + + {fragment.text} + + + ) : ( + + {fragment.text} + + ); + })} + +
+ )} + {ngoHoverCard.orgDescriptionParagraphs.map((paragraph, index) => { + return ( +
+ {paragraph.map((fragment, index2) => { + return fragment.href ? ( + + + {fragment.text} + + + ) : ( + + {fragment.text} + + ); + })} +
+ ); + })} + + {ngoHoverCard.quote && ngoHoverCard.quoteAuthor ? ( + <> +
+
+ {ngoHoverCard.quote.map((title, index) => ( + + {title.text}{' '} + + ))} +
+
+ {ngoHoverCard.quotePhoto && ( + {ngoHoverCard.quoteAuthor} + )} + + {ngoHoverCard.quoteAuthor}, {orgShortName} + +
+
+ + + ) : ( + '' + )} +
+
+ {missionTranslation} +
+
+ {orgMission} +
+
+
+
+ {foundedTranslation} +
+
+ {ngoHoverCard.orgFoundation} +
+
+
+
+ {headquarterTranslation} +
+
+ {ngoHoverCard.orgHeadquarter} +
+
+ {showVisitOnline && ( +
+
+ {moreLinksTranslation} +
+
+ {ngoHoverCard.orgWebsite && ( + + {websiteTranslation} + + )} + {ngoHoverCard.orgFacebook && ( + + {facebookTranslation} + + )} + {ngoHoverCard.orgInstagram && ( + + {instagramTranslation} + + )} + {ngoHoverCard.orgLinkedIn && ( + + {linkedinTranslation} + + )} + {ngoHoverCard.orgYoutube && ( + + {youtubeTranslation} + + )} +
+
+ )} +
+
+
+ ); +} diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index dee3cbfc6..cb6927ff8 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -1,5 +1,9 @@ -import { WebsiteLanguage } from '@/i18n'; -import { UsersIcon } from '@heroicons/react/24/solid'; +import { + FundraiserBadge, + RecipientsBadge, + SDGBadge, +} from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges'; +import { NgoCardProps } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; import { Translator } from '@socialincome/shared/src/utils/i18n'; import { Badge, @@ -19,193 +23,10 @@ import { Separator, Typography, } from '@socialincome/ui'; -import { FontColor } from '@socialincome/ui/src/interfaces/color'; -import { cn } from '@socialincome/ui/src/lib/utils'; import { SL } from 'country-flag-icons/react/1x1'; import Image from 'next/image'; import Link from 'next/link'; -import { ReactElement } from 'react'; -import SdgIcon from '../(assets)/sdg-circle.svg'; - -type QuoteType = { - text: string; - color: FontColor; -}[]; - -type FundRaiserBadgeType = { - fundRaiserTranslation: string; -}; - -type SdgBadgeType = { - hoverCardOrgName: string; - sdgNumber: number; - translatorSdg: string; - translatorSdgTitle: string; - translatorSdgMission1: string; - translatorSdgMission2: string; -}; - -type CountryBadgeType = { - countryFlagComponent?: ReactElement; - countryAbbreviation: string; -}; - -type RecipientsBadgeType = { - hoverCardOrgName: string; - hoverCardTotalRecipients?: number; - hoverCardTotalActiveRecipients?: number; - hoverCardTotalFormerRecipients?: number; - hoverCardTotalSuspendedRecipients?: number; - isInsideHoverCard?: boolean; - translatorBadgeRecipients: string; - translatorBadgeRecipientsBy: string; - translatorBadgeActive: string; - translatorBadgeFormer: string; - translatorBadgeSuspended: string; -}; -type NgoHoverCardType = { - orgImage: string; - orgLongName: string; - partnershipStart: string; - orgDescriptionParagraphs: { - text: string; - href?: string; - }[][]; - quote?: QuoteType; - quoteAuthor?: string; - quotePhoto?: string | null; - orgFoundation: string; - orgHeadquarter: string; - orgWebsite?: string; - orgFacebook?: string; - orgInstagram?: string; - orgLinkedIn?: string; - orgYoutube?: string; - orgFundRaiserText?: { - text: string; - href?: string; - }[]; -}; - -type NgoCardProps = { - orgShortName: string; - orgMission: string; - countryBadge: CountryBadgeType; - recipientsBadge: RecipientsBadgeType; - sdgBadges: SdgBadgeType[]; - ngoHoverCard: NgoHoverCardType; - lang: WebsiteLanguage; -}; -function RecipientsBadge({ - hoverCardOrgName, - hoverCardTotalRecipients, - hoverCardTotalActiveRecipients, - hoverCardTotalSuspendedRecipients, - hoverCardTotalFormerRecipients, - isInsideHoverCard, - translatorBadgeRecipients, - translatorBadgeRecipientsBy, - translatorBadgeActive, - translatorBadgeFormer, - translatorBadgeSuspended, -}: RecipientsBadgeType) { - let badgeClassName = 'bg-primary hover:bg-primary text-primary bg-opacity-10 hover:bg-opacity-100 hover:text-white'; - if (isInsideHoverCard) { - badgeClassName = cn(badgeClassName, ' py-2'); - } - const userIconClassName = isInsideHoverCard ? 'mr-2 h-5 w-5 rounded-full' : 'mr-1 h-4 w-4 rounded-full'; - - return ( - - - - - - {hoverCardTotalRecipients || 0} {isInsideHoverCard ? translatorBadgeRecipients : ''} - - - - -
- - {hoverCardTotalRecipients || 0} {translatorBadgeRecipientsBy} {hoverCardOrgName} - -
- -
- - - {hoverCardTotalActiveRecipients || 0} {translatorBadgeActive} - - - - - {hoverCardTotalFormerRecipients || 0} {translatorBadgeFormer} - - - - - {hoverCardTotalSuspendedRecipients || 0} {translatorBadgeSuspended} - - -
-
-
- ); -} - -function SDGBadge({ - hoverCardOrgName, - sdgNumber, - translatorSdg, - translatorSdgTitle, - translatorSdgMission1, - translatorSdgMission2, -}: SdgBadgeType) { - return ( - - - - - {translatorSdgTitle} - - - - -
- SDG Icon - - {translatorSdg} {sdgNumber?.toString() || ''}: {translatorSdgTitle} - -
- -
- - {translatorSdgMission1} {hoverCardOrgName} {translatorSdgMission2} - -
-
-
- ); -} - -function FundraiserBadge({ fundRaiserTranslation }: FundRaiserBadgeType) { - return ( - - - - - {fundRaiserTranslation} - - - - {/**/} - {/*TODO: Should anything go here?*/} - {/**/} - - ); -} export default async function NgoCard({ orgShortName, orgMission, @@ -331,7 +152,7 @@ export default async function NgoCard({ {ngoHoverCard.orgFundRaiserText?.map((fragment, index) => { return fragment.href ? ( - + {fragment.text} diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx index a1aca0d3a..28913f2a0 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx @@ -1,8 +1,16 @@ import { DefaultParams } from '@/app/[lang]/[region]'; import NgoCard from '@/app/[lang]/[region]/(website)/partners/(sections)/ngocard'; -import { WebsiteLanguage } from '@/i18n'; +import { + CountryBadgeType, + RecipientsBadgeType, + SdgBadgeType, +} from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; +import { + NgoCardProps, + NgoEntryJSON, + NgoHoverCardType, +} from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; import { Translator } from '@socialincome/shared/src/utils/i18n'; -import { FontColor } from '@socialincome/ui/src/interfaces/color'; import { CH, SL } from 'country-flag-icons/react/1x1'; import { ReactElement } from 'react'; @@ -14,106 +22,6 @@ const country_abbreviations_to_flag_map: Record = { function getFlag(abbreviation: string): ReactElement { return country_abbreviations_to_flag_map[abbreviation] || ; } -type QuoteType = { - text: string; - color: FontColor; -}[]; - -type SdgBadgeType = { - hoverCardOrgName: string; - sdgNumber: number; - translatorSdg: string; - translatorSdgTitle: string; - translatorSdgMission1: string; - translatorSdgMission2: string; -}; - -type CountryBadgeType = { - countryFlagComponent?: ReactElement; - countryAbbreviation: string; -}; - -type RecipientsBadgeType = { - hoverCardOrgName: string; - hoverCardTotalRecipients?: number; - hoverCardTotalActiveRecipients?: number; - hoverCardTotalFormerRecipients?: number; - hoverCardTotalSuspendedRecipients?: number; - isInsideHoverCard?: boolean; - translatorBadgeRecipients: string; - translatorBadgeRecipientsBy: string; - translatorBadgeActive: string; - translatorBadgeFormer: string; - translatorBadgeSuspended: string; -}; - -type NgoHoverCardType = { - orgImage: string; - orgLongName: string; - partnershipStart: string; - orgDescriptionParagraphs: { - text: string; - href?: string; - }[][]; - quote?: QuoteType; - quoteAuthor?: string; - quotePhoto?: string | null; - orgFoundation: string; - orgHeadquarter: string; - orgWebsite?: string; - orgFacebook?: string; - orgInstagram?: string; - orgLinkedIn?: string; - orgYoutube?: string; - orgFundRaiserText?: { - text: string; - href?: string; - }[]; -}; - -type NgoCardProps = { - orgShortName: string; - orgMission: string; - countryBadge: CountryBadgeType; - recipientsBadge: RecipientsBadgeType; - sdgBadges: SdgBadgeType[]; - ngoHoverCard: NgoHoverCardType; - lang: WebsiteLanguage; -}; - -type NgoEntryJSON = { - 'org-image': string; - 'org-short-name': string; - 'org-long-name': string; - 'org-foundation': string; - 'org-country': string; - 'org-headquarter': string; - 'org-category': string; - 'org-focus-sdg-numbers': number[]; - 'partnership-start': string; - 'recipients-total': number; - 'recipients-active': number; - 'recipients-former': number; - 'recipients-suspend': number; - 'org-mission': string; - 'org-description-paragraphs': { - text: string; - href?: string; - }[][]; - 'org-quote': []; - 'org-quote-author': string; - 'org-quote-photo': string; - 'org-photo': string; - 'org-website': string; - 'org-instagram': string; - 'org-facebook': string; - 'org-linkedin': string; - 'org-youtube': string; - 'org-fundraiser-text': { - text: string; - href?: string; - }[]; -}; export async function NgoList({ lang }: DefaultParams) { const translator = await Translator.getInstance({ diff --git a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges.ts b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges.ts new file mode 100644 index 000000000..e52e22201 --- /dev/null +++ b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges.ts @@ -0,0 +1,41 @@ +import { FontColor } from '@socialincome/ui/src/interfaces/color'; +import { ReactElement } from 'react'; + +type QuoteType = { + text: string; + color: FontColor; +}[]; + +type FundRaiserBadgeType = { + fundRaiserTranslation: string; +}; + +type SdgBadgeType = { + hoverCardOrgName: string; + sdgNumber: number; + translatorSdg: string; + translatorSdgTitle: string; + translatorSdgMission1: string; + translatorSdgMission2: string; +}; + +type CountryBadgeType = { + countryFlagComponent?: ReactElement; + countryAbbreviation: string; +}; + +type RecipientsBadgeType = { + hoverCardOrgName: string; + hoverCardTotalRecipients?: number; + hoverCardTotalActiveRecipients?: number; + hoverCardTotalFormerRecipients?: number; + hoverCardTotalSuspendedRecipients?: number; + isInsideHoverCard?: boolean; + translatorBadgeRecipients: string; + translatorBadgeRecipientsBy: string; + translatorBadgeActive: string; + translatorBadgeFormer: string; + translatorBadgeSuspended: string; +}; + +export type { CountryBadgeType, FundRaiserBadgeType, QuoteType, RecipientsBadgeType, SdgBadgeType }; diff --git a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts new file mode 100644 index 000000000..740f585eb --- /dev/null +++ b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts @@ -0,0 +1,102 @@ +import { + CountryBadgeType, + QuoteType, + RecipientsBadgeType, + SdgBadgeType, +} from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; +import { WebsiteLanguage } from '@/i18n'; + +type NgoHoverCardType = { + orgImage: string; + orgLongName: string; + partnershipStart: string; + orgDescriptionParagraphs: { + text: string; + href?: string; + }[][]; + quote?: QuoteType; + quoteAuthor?: string; + quotePhoto?: string | null; + orgFoundation: string; + orgHeadquarter: string; + orgWebsite?: string; + orgFacebook?: string; + orgInstagram?: string; + orgLinkedIn?: string; + orgYoutube?: string; + orgFundRaiserText?: { + text: string; + href?: string; + }[]; +}; + +type NgoCardProps = { + orgShortName: string; + orgMission: string; + countryBadge: CountryBadgeType; + recipientsBadge: RecipientsBadgeType; + sdgBadges: SdgBadgeType[]; + ngoHoverCard: NgoHoverCardType; + lang: WebsiteLanguage; +}; + +type NgoEntryJSON = { + 'org-image': string; + 'org-short-name': string; + 'org-long-name': string; + 'org-foundation': string; + 'org-country': string; + 'org-headquarter': string; + 'org-category': string; + 'org-focus-sdg-numbers': number[]; + 'partnership-start': string; + 'recipients-total': number; + 'recipients-active': number; + 'recipients-former': number; + 'recipients-suspend': number; + 'org-mission': string; + 'org-description-paragraphs': { + text: string; + href?: string; + }[][]; + 'org-quote': []; + 'org-quote-author': string; + 'org-quote-photo': string; + 'org-photo': string; + 'org-website': string; + 'org-instagram': string; + 'org-facebook': string; + 'org-linkedin': string; + 'org-youtube': string; + 'org-fundraiser-text': { + text: string; + href?: string; + }[]; +}; + +type NgoHomeProps = { + ngoHoverCard: NgoHoverCardType; + countryBadge: CountryBadgeType; + recipientsBadge: RecipientsBadgeType; + orgMission: string; + countryLongName: string; + partnerSinceTranslation: string; + badgeRecipientTranslation: string; + badgeRecipientTranslationBy: string; + badgeActiveTranslation: string; + badgeFormerTranslation: string; + badgeSuspendedTranslation: string; + fundRaiserTranslation: string; + orgShortName: string; + missionTranslation: string; + foundedTranslation: string; + headquarterTranslation: string; + moreLinksTranslation: string; + websiteTranslation: string; + facebookTranslation: string; + instagramTranslation: string; + linkedinTranslation: string; + youtubeTranslation: string; +}; + +export type { NgoCardProps, NgoEntryJSON, NgoHomeProps, NgoHoverCardType }; diff --git a/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx b/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx new file mode 100644 index 000000000..824243415 --- /dev/null +++ b/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx @@ -0,0 +1,94 @@ +'use client'; +import { DefaultPageProps } from '@/app/[lang]/[region]'; +import { PartnerHome } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerHome'; +import { CountryBadgeType, RecipientsBadgeType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; +import { NgoEntryJSON, NgoHoverCardType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; +import { Translator } from '@socialincome/shared/src/utils/i18n'; +import { CH, SL } from 'country-flag-icons/react/1x1'; +import { useParams } from 'next/navigation'; +import { ReactElement } from 'react'; + +const country_abbreviations_to_flag_map: Record = { + SL: , + CH: , +}; + +function getFlag(abbreviation: string): ReactElement { + return country_abbreviations_to_flag_map[abbreviation] || ; +} +export default async function Page({ params: { lang } }: DefaultPageProps) { + const { orgLongName } = useParams() as { orgLongName: string }; + + const deSlugifiedOrgLongName = orgLongName.replace('-', ' '); + const translator = await Translator.getInstance({ + language: lang, + namespaces: ['website-partners', 'website-common', 'countries'], + }); + const ngoArray: NgoEntryJSON[] = translator.t('ngos'); + //TODO: Currently hardcoded ngo for ngo not found, need to remove this + const currentNgo: NgoEntryJSON = + ngoArray.find((ngo) => ngo['org-long-name'].toLowerCase() === deSlugifiedOrgLongName) || ngoArray[0]; + + const image_base_path = '/assets/partners/'; + const recipientsBadge: RecipientsBadgeType = { + hoverCardOrgName: currentNgo['org-long-name'], + hoverCardTotalRecipients: currentNgo['recipients-total'], + hoverCardTotalActiveRecipients: currentNgo['recipients-active'], + hoverCardTotalFormerRecipients: currentNgo['recipients-former'], + hoverCardTotalSuspendedRecipients: currentNgo['recipients-suspend'], + translatorBadgeRecipients: '', + translatorBadgeRecipientsBy: '', + translatorBadgeActive: '', + translatorBadgeFormer: '', + translatorBadgeSuspended: '', + }; + + const countryBadge: CountryBadgeType = { + countryAbbreviation: currentNgo['org-country'], + countryFlagComponent: getFlag(currentNgo['org-country']), + }; + const ngoHoverCard: NgoHoverCardType = { + orgImage: image_base_path.concat(currentNgo['org-image']), + orgLongName: currentNgo['org-long-name'], + partnershipStart: currentNgo['partnership-start'], + orgDescriptionParagraphs: currentNgo['org-description-paragraphs'], + quote: currentNgo['org-quote'] ?? null, + quoteAuthor: currentNgo['org-quote-author'] ?? null, + quotePhoto: currentNgo['org-quote-photo'] ? image_base_path.concat(currentNgo['org-quote-photo']) : null, + orgFoundation: currentNgo['org-foundation'], + orgHeadquarter: currentNgo['org-headquarter'], + orgWebsite: currentNgo['org-website'] ?? null, + orgFacebook: currentNgo['org-facebook'] ?? null, + orgInstagram: currentNgo['org-instagram'] ?? null, + orgLinkedIn: currentNgo['org-linkedin'] ?? null, + orgYoutube: currentNgo['org-youtube'] ?? null, + orgFundRaiserText: currentNgo['org-fundraiser-text'] ?? null, + }; + + return ( + + ); +} From b9d19d7b128651c4868d7b36b10b11063802615a Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Fri, 22 Nov 2024 00:46:48 +0530 Subject: [PATCH 06/17] Add permalink, resolve TODOs --- shared/locales/en/website-partners.json | 21 ++-- .../partners/(components)/PartnerHome.tsx | 95 ++++++++++++++++--- .../(website)/partners/(sections)/ngocard.tsx | 12 +++ .../(website)/partners/(sections)/ngolist.tsx | 1 + .../partners/(types)/PartnerCards.ts | 10 +- .../(website)/partners/[orgLongName]/page.tsx | 65 +------------ 6 files changed, 115 insertions(+), 89 deletions(-) diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index efafb2888..cbde055c7 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -29,7 +29,8 @@ "partner-since": "Partner since", "headquarter": "Headquarter", "mission": "Mission", - "fundraiser": "Fundraiser" + "fundraiser": "Fundraiser", + "permalink": "Permalink" }, "ngos": [ { @@ -88,7 +89,8 @@ "org-quote-photo": "avatar.jpg", "org-website": "https://www.aurorafoundation.is/en", "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", - "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" + "org-facebook": "https://www.facebook.com/aurorafoundationofficial/", + "org-permalink": "socialincome.org/partners/aurora-foundation" }, { "org-short-name": "JNJF", @@ -134,7 +136,8 @@ "org-website": "https://www.jnjf.org/", "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", "org-facebook": "https://www.facebook.com/JNJFoundation", - "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" + "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/", + "org-permalink": "socialincome.org/partners/jamil-&-nyanga-jaward-foundation" }, { "org-short-name": "Reachout Salone", @@ -178,7 +181,8 @@ "org-quote-author": "Edmond Margai", "org-photo": "", "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", - "org-youtube": "https://www.youtube.com/@reachoutsalone8395" + "org-youtube": "https://www.youtube.com/@reachoutsalone8395", + "org-permalink": "socialincome.org/partners/reachout-salone" }, { "org-short-name": "Equal Rights Alliance", @@ -221,7 +225,8 @@ ], "org-quote-author": "Arnold Gibril Kamara", "org-photo": "", - "org-facebook": "https://www.facebook.com/groups/693921621002955/" + "org-facebook": "https://www.facebook.com/groups/693921621002955/", + "org-permalink": "socialincome.org/partners/equal-rights-alliance" }, { "org-short-name": "United Polio Brothers and Sisters", @@ -263,7 +268,8 @@ } ], "org-quote-author": "Paul Osman Kabia", - "org-photo": "" + "org-photo": "", + "org-permalink": "socialincome.org/partners/united-polio-brothers-and-sisters" }, { "org-short-name": "SLAES", @@ -311,7 +317,8 @@ } ], "org-quote-author": "Paul Osman Kabia", - "org-photo": "" + "org-photo": "", + "org-permalink": "socialincome.org/partners/sierra-leone-association-of-ebola-survivors" } ] } diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx index df016259c..bcd0a7e7e 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx @@ -1,26 +1,34 @@ 'use client'; -//TODO: use-client still async-await, need to figure this out import { FundraiserBadge, RecipientsBadge } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges'; -import { NgoHomeProps } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; +import { CountryBadgeType, RecipientsBadgeType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; +import { + NgoEntryJSON, + NgoHomeProps, + NgoHoverCardType, +} from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; import { Badge, Separator, Typography } from '@socialincome/ui'; -import { SL } from 'country-flag-icons/react/1x1'; +import { CH, SL } from 'country-flag-icons/react/1x1'; import Image from 'next/image'; import Link from 'next/link'; +import { useParams, useRouter } from 'next/navigation'; +import { ReactElement } from 'react'; +const country_abbreviations_to_flag_map: Record = { + SL: , + CH: , +}; +function getFlag(abbreviation: string): ReactElement { + return country_abbreviations_to_flag_map[abbreviation] || ; +} export function PartnerHome({ - ngoHoverCard, - recipientsBadge, + ngoArray, partnerSinceTranslation, - orgMission, - countryLongName, badgeRecipientTranslation, badgeRecipientTranslationBy, badgeActiveTranslation, badgeFormerTranslation, badgeSuspendedTranslation, - countryBadge, fundRaiserTranslation, - orgShortName, missionTranslation, foundedTranslation, headquarterTranslation, @@ -30,7 +38,56 @@ export function PartnerHome({ instagramTranslation, linkedinTranslation, youtubeTranslation, + permalinkTranslation, }: NgoHomeProps) { + const router = useRouter(); + const { orgLongName } = useParams() as { orgLongName: string }; + + const deSlugifiedOrgLongName = orgLongName.replaceAll('-', ' ').replace('%26', '&'); + const currentNgo: NgoEntryJSON | undefined = ngoArray.find( + (ngo) => ngo['org-long-name'].toLowerCase() === deSlugifiedOrgLongName, + ); + if (!currentNgo) { + router.replace('/not-found'); + return; + } + + const image_base_path = '/assets/partners/'; + const recipientsBadge: RecipientsBadgeType = { + hoverCardOrgName: currentNgo!['org-long-name'], + hoverCardTotalRecipients: currentNgo!['recipients-total'], + hoverCardTotalActiveRecipients: currentNgo!['recipients-active'], + hoverCardTotalFormerRecipients: currentNgo!['recipients-former'], + hoverCardTotalSuspendedRecipients: currentNgo!['recipients-suspend'], + translatorBadgeRecipients: '', + translatorBadgeRecipientsBy: '', + translatorBadgeActive: '', + translatorBadgeFormer: '', + translatorBadgeSuspended: '', + }; + + const countryBadge: CountryBadgeType = { + countryAbbreviation: currentNgo!['org-country'], + countryFlagComponent: getFlag(currentNgo!['org-country']), + }; + const ngoHoverCard: NgoHoverCardType = { + orgImage: image_base_path.concat(currentNgo!['org-image']), + orgLongName: currentNgo!['org-long-name'], + partnershipStart: currentNgo!['partnership-start'], + orgDescriptionParagraphs: currentNgo!['org-description-paragraphs'], + quote: currentNgo!['org-quote'] ?? null, + quoteAuthor: currentNgo!['org-quote-author'] ?? null, + quotePhoto: currentNgo!['org-quote-photo'] ? image_base_path.concat(currentNgo!['org-quote-photo']) : null, + orgFoundation: currentNgo!['org-foundation'], + orgHeadquarter: currentNgo!['org-headquarter'], + orgWebsite: currentNgo!['org-website'] ?? null, + orgFacebook: currentNgo!['org-facebook'] ?? null, + orgInstagram: currentNgo!['org-instagram'] ?? null, + orgLinkedIn: currentNgo!['org-linkedin'] ?? null, + orgYoutube: currentNgo!['org-youtube'] ?? null, + orgFundRaiserText: currentNgo!['org-fundraiser-text'] ?? null, + orgPermalink: currentNgo!['org-permalink'], + }; const showVisitOnline: boolean = !!( ngoHoverCard.orgInstagram || ngoHoverCard.orgFacebook || @@ -42,7 +99,7 @@ export function PartnerHome({ const showFundRaiser: boolean = !!ngoHoverCard.orgFundRaiserText; return (
-
+
{countryBadge?.countryFlagComponent || } - {countryLongName} + {currentNgo!['org-long-name']}
@@ -146,7 +203,7 @@ export function PartnerHome({ /> )} - {ngoHoverCard.quoteAuthor}, {orgShortName} + {ngoHoverCard.quoteAuthor}, {currentNgo['org-short-name']}
@@ -160,7 +217,7 @@ export function PartnerHome({ {missionTranslation}
- {orgMission} + {currentNgo!['org-mission']}
@@ -213,6 +270,18 @@ export function PartnerHome({
)} +
+
+ {permalinkTranslation} +
+
+ + + {ngoHoverCard.orgPermalink} + + +
+
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index cb6927ff8..809c193ce 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -273,6 +273,18 @@ export default async function NgoCard({ )} +
+
+ {translator.t('ngo-generic.permalink')} +
+
+ + + {ngoHoverCard.orgPermalink} + + +
+
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx index 28913f2a0..1d9425d7c 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx @@ -77,6 +77,7 @@ export async function NgoList({ lang }: DefaultParams) { orgLinkedIn: ngoArray[i]['org-linkedin'] ?? null, orgYoutube: ngoArray[i]['org-youtube'] ?? null, orgFundRaiserText: ngoArray[i]['org-fundraiser-text'] ?? null, + orgPermalink: ngoArray[i]['org-permalink'], }; const ngoCardProps: NgoCardProps = { diff --git a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts index 740f585eb..affe5c367 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts +++ b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts @@ -24,6 +24,7 @@ type NgoHoverCardType = { orgInstagram?: string; orgLinkedIn?: string; orgYoutube?: string; + orgPermalink: string; orgFundRaiserText?: { text: string; href?: string; @@ -68,6 +69,7 @@ type NgoEntryJSON = { 'org-facebook': string; 'org-linkedin': string; 'org-youtube': string; + 'org-permalink': string; 'org-fundraiser-text': { text: string; href?: string; @@ -75,11 +77,7 @@ type NgoEntryJSON = { }; type NgoHomeProps = { - ngoHoverCard: NgoHoverCardType; - countryBadge: CountryBadgeType; - recipientsBadge: RecipientsBadgeType; - orgMission: string; - countryLongName: string; + ngoArray: NgoEntryJSON[]; partnerSinceTranslation: string; badgeRecipientTranslation: string; badgeRecipientTranslationBy: string; @@ -87,7 +85,6 @@ type NgoHomeProps = { badgeFormerTranslation: string; badgeSuspendedTranslation: string; fundRaiserTranslation: string; - orgShortName: string; missionTranslation: string; foundedTranslation: string; headquarterTranslation: string; @@ -97,6 +94,7 @@ type NgoHomeProps = { instagramTranslation: string; linkedinTranslation: string; youtubeTranslation: string; + permalinkTranslation: string; }; export type { NgoCardProps, NgoEntryJSON, NgoHomeProps, NgoHoverCardType }; diff --git a/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx b/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx index 824243415..3541decb5 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx @@ -1,78 +1,16 @@ -'use client'; import { DefaultPageProps } from '@/app/[lang]/[region]'; import { PartnerHome } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerHome'; -import { CountryBadgeType, RecipientsBadgeType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; -import { NgoEntryJSON, NgoHoverCardType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; import { Translator } from '@socialincome/shared/src/utils/i18n'; -import { CH, SL } from 'country-flag-icons/react/1x1'; -import { useParams } from 'next/navigation'; -import { ReactElement } from 'react'; -const country_abbreviations_to_flag_map: Record = { - SL: , - CH: , -}; - -function getFlag(abbreviation: string): ReactElement { - return country_abbreviations_to_flag_map[abbreviation] || ; -} export default async function Page({ params: { lang } }: DefaultPageProps) { - const { orgLongName } = useParams() as { orgLongName: string }; - - const deSlugifiedOrgLongName = orgLongName.replace('-', ' '); const translator = await Translator.getInstance({ language: lang, namespaces: ['website-partners', 'website-common', 'countries'], }); - const ngoArray: NgoEntryJSON[] = translator.t('ngos'); - //TODO: Currently hardcoded ngo for ngo not found, need to remove this - const currentNgo: NgoEntryJSON = - ngoArray.find((ngo) => ngo['org-long-name'].toLowerCase() === deSlugifiedOrgLongName) || ngoArray[0]; - - const image_base_path = '/assets/partners/'; - const recipientsBadge: RecipientsBadgeType = { - hoverCardOrgName: currentNgo['org-long-name'], - hoverCardTotalRecipients: currentNgo['recipients-total'], - hoverCardTotalActiveRecipients: currentNgo['recipients-active'], - hoverCardTotalFormerRecipients: currentNgo['recipients-former'], - hoverCardTotalSuspendedRecipients: currentNgo['recipients-suspend'], - translatorBadgeRecipients: '', - translatorBadgeRecipientsBy: '', - translatorBadgeActive: '', - translatorBadgeFormer: '', - translatorBadgeSuspended: '', - }; - - const countryBadge: CountryBadgeType = { - countryAbbreviation: currentNgo['org-country'], - countryFlagComponent: getFlag(currentNgo['org-country']), - }; - const ngoHoverCard: NgoHoverCardType = { - orgImage: image_base_path.concat(currentNgo['org-image']), - orgLongName: currentNgo['org-long-name'], - partnershipStart: currentNgo['partnership-start'], - orgDescriptionParagraphs: currentNgo['org-description-paragraphs'], - quote: currentNgo['org-quote'] ?? null, - quoteAuthor: currentNgo['org-quote-author'] ?? null, - quotePhoto: currentNgo['org-quote-photo'] ? image_base_path.concat(currentNgo['org-quote-photo']) : null, - orgFoundation: currentNgo['org-foundation'], - orgHeadquarter: currentNgo['org-headquarter'], - orgWebsite: currentNgo['org-website'] ?? null, - orgFacebook: currentNgo['org-facebook'] ?? null, - orgInstagram: currentNgo['org-instagram'] ?? null, - orgLinkedIn: currentNgo['org-linkedin'] ?? null, - orgYoutube: currentNgo['org-youtube'] ?? null, - orgFundRaiserText: currentNgo['org-fundraiser-text'] ?? null, - }; return ( ); } From 9aa8f7e8cbc7d853bb1b3fb2754599dad8bef808 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Sat, 23 Nov 2024 02:09:48 +0530 Subject: [PATCH 07/17] Update shadcn Dialog Close to be sticky --- ui/src/components/dialog.tsx | 6 +++--- .../(website)/partners/(components)/PartnerHome.tsx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ui/src/components/dialog.tsx b/ui/src/components/dialog.tsx index 6f42ca2b3..948729c73 100644 --- a/ui/src/components/dialog.tsx +++ b/ui/src/components/dialog.tsx @@ -39,11 +39,11 @@ const DialogContent = React.forwardRef< )} {...props} > - {children} - - + + Close + {children} )); diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx index bcd0a7e7e..2bf7d310f 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx @@ -43,7 +43,7 @@ export function PartnerHome({ const router = useRouter(); const { orgLongName } = useParams() as { orgLongName: string }; - const deSlugifiedOrgLongName = orgLongName.replaceAll('-', ' ').replace('%26', '&'); + const deSlugifiedOrgLongName = orgLongName.replaceAll('-', ' ').replaceAll('%26', '&'); const currentNgo: NgoEntryJSON | undefined = ngoArray.find( (ngo) => ngo['org-long-name'].toLowerCase() === deSlugifiedOrgLongName, ); From 259bd89dfc7d754582aca99f0d08975c6002b1a7 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Sat, 23 Nov 2024 12:19:29 +0530 Subject: [PATCH 08/17] Remove the white strip by moving content up by 4 --- .../[lang]/[region]/(website)/partners/(sections)/ngocard.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index 809c193ce..d80f77128 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -103,7 +103,7 @@ export default async function NgoCard({ - + -
+
From 3592d4220725a067ab8b8f9d6940b8273f8873cd Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Sat, 23 Nov 2024 12:46:44 +0530 Subject: [PATCH 09/17] Add responsiveness by increasing gap and break-words for small screens --- .../(website)/partners/(sections)/ngocard.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index d80f77128..b128507ca 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -215,7 +215,7 @@ export default async function NgoCard({ ) : ( '' )} -
+
{translator.t('ngo-generic.mission')}
@@ -223,7 +223,7 @@ export default async function NgoCard({ {orgMission}
-
+
{translator.t('ngo-generic.founded')}
@@ -231,7 +231,7 @@ export default async function NgoCard({ {ngoHoverCard.orgFoundation}
-
+
{translator.t('ngo-generic.headquarter')}
@@ -240,7 +240,7 @@ export default async function NgoCard({
{showVisitOnline && ( -
+
{translator.t('links.more')}
@@ -273,13 +273,13 @@ export default async function NgoCard({
)} -
+
{translator.t('ngo-generic.permalink')}
- + {ngoHoverCard.orgPermalink} From 04fef190ef9fe4ce77a0c7b41bbcd311e05c160c Mon Sep 17 00:00:00 2001 From: Sandino Scheidegger Date: Sat, 23 Nov 2024 10:44:54 +0100 Subject: [PATCH 10/17] Rearrange an asset that is fetched conditionally (and therefore in the public folder) --- shared/locales/en/website-partners.json | 2 +- .../assets/partners}/logo-aurora.png | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename website/{src/app/[lang]/[region]/(website)/partners/(assets) => public/assets/partners}/logo-aurora.png (100%) diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index cbde055c7..1d2fd0817 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -86,7 +86,7 @@ ], "org-quote-author": "Regína Bjarnadóttir", "org-photo": "", - "org-quote-photo": "avatar.jpg", + "org-quote-photo": "logo-aurora.png", "org-website": "https://www.aurorafoundation.is/en", "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", "org-facebook": "https://www.facebook.com/aurorafoundationofficial/", diff --git a/website/src/app/[lang]/[region]/(website)/partners/(assets)/logo-aurora.png b/website/public/assets/partners/logo-aurora.png similarity index 100% rename from website/src/app/[lang]/[region]/(website)/partners/(assets)/logo-aurora.png rename to website/public/assets/partners/logo-aurora.png From f3ea7cbd47e1aa7ec808252892b4520347ec2a20 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Wed, 4 Dec 2024 21:56:46 +0530 Subject: [PATCH 11/17] add org-slug and filter out for specific org server-side (instead of client-side) --- shared/locales/en/website-partners.json | 522 +++++++++--------- .../partners/(components)/PartnerHome.tsx | 82 +-- .../(website)/partners/(sections)/ngocard.tsx | 4 +- .../(website)/partners/(sections)/ngolist.tsx | 9 +- .../partners/(types)/PartnerCards.ts | 42 +- .../(website)/partners/[orgLongName]/page.tsx | 33 -- .../(website)/partners/[slug]/page.tsx | 50 ++ 7 files changed, 368 insertions(+), 374 deletions(-) delete mode 100644 website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx create mode 100644 website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index 1d2fd0817..f96d26602 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -33,292 +33,298 @@ "permalink": "Permalink" }, "ngos": [ - { - "org-short-name": "Aurora Foundation", - "org-long-name": "Aurora Foundation", - "org-foundation": "2007", - "org-image": "aurora.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "International NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2020", - "recipients-total": "42", - "recipients-active": "20", - "recipients-former": "22", - "recipients-suspended": "0", - "org-mission": "The NGO encourages creativity and helps people improve their lives and communities through development and cultural projects.", - "org-description-paragraphs": [ - [ - { - "text": "The Aurora Foundation fosters impact through cultural and development projects that " - }, - { - "text": "celebrate creativity ", - "href": "https://www.aurorafoundation.is/en" - }, - { - "text": "and community resilience." - } - ], - [ - { - "text": "Founded in 2007 in Iceland, Aurora promotes local artistry and sustainable practices in Sierra Leone through initiatives like Lettie Stuart Pottery and the Sweet Salone handcraft shop, bringing traditional crafts to a global audience." - } - ], - [ - { - "text": "Additionally, Aurora Impact supports visionary projects addressing global challenges, with entrepreneurship as a catalyst for transformative change." - } - ] - ], - "org-quote": [ + "aurora-foundation", + "jamil-&-nyanga-jaward-foundation", + "reachout-salone", + "equal-rights-alliance", + "united-polio-brothers-and-sisters", + "sierra-leone-association-of-ebola-survivors" + ], + "aurora-foundation": { + "org-slug": "aurora-foundation", + "org-short-name": "Aurora Foundation", + "org-long-name": "Aurora Foundation", + "org-foundation": "2007", + "org-image": "aurora.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "International NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2020", + "recipients-total": "42", + "recipients-active": "20", + "recipients-former": "22", + "recipients-suspended": "0", + "org-mission": "The NGO encourages creativity and helps people improve their lives and communities through development and cultural projects.", + "org-description-paragraphs": [ + [ { - "text": "Thanks to Social Income, artisans have the " + "text": "The Aurora Foundation fosters impact through cultural and development projects that " }, { - "text": "stability to focus on their craft,", - "color": "accent" + "text": "celebrate creativity ", + "href": "https://www.aurorafoundation.is/en" }, { - "text": "creating more sustainable livelihoods." + "text": "and community resilience." } ], - "org-quote-author": "Regína Bjarnadóttir", - "org-photo": "", - "org-quote-photo": "logo-aurora.png", - "org-website": "https://www.aurorafoundation.is/en", - "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", - "org-facebook": "https://www.facebook.com/aurorafoundationofficial/", - "org-permalink": "socialincome.org/partners/aurora-foundation" - }, - { - "org-short-name": "JNJF", - "org-long-name": "Jamil & Nyanga Jaward Foundation", - "org-foundation": "2017", - "org-image": "jamil.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "35", - "recipients-active": "28", - "recipients-former": "7", - "recipients-suspended": "0", - "org-mission": "The NGO provides widows and children in need with education, support, and opportunities to build better futures.", - "org-description-paragraphs": [ - [ - { - "text": "The Jamil and Nyanga Jaward Foundation (JNJF), founded in 2017, empowers underprivileged widows and children through education, personal growth, and community support." - } - ], - [ - { - "text": "With a vision of re-establishing hope and rebuilding lives, the foundation seeks to break cycles of poverty, enabling widows and children to overcome social exclusion and build brighter futures." - } - ] - ], - "org-quote": [ - { - "text": "Social Income provides a straightforward solution with a " - }, - { - "text": "powerful impact on our beneficiaries,", - "color": "accent" - }, + [ { - "text": "serving as a financial lifeline that has profoundly transformed their lives." + "text": "Founded in 2007 in Iceland, Aurora promotes local artistry and sustainable practices in Sierra Leone through initiatives like Lettie Stuart Pottery and the Sweet Salone handcraft shop, bringing traditional crafts to a global audience." } ], - "org-quote-author": "Jamil Jaward", - "org-photo": "", - "org-website": "https://www.jnjf.org/", - "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", - "org-facebook": "https://www.facebook.com/JNJFoundation", - "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/", - "org-permalink": "socialincome.org/partners/jamil-&-nyanga-jaward-foundation" - }, - { - "org-short-name": "Reachout Salone", - "org-long-name": "Reachout Salone", - "org-foundation": "2020", - "org-image": "reachout.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "36", - "recipients-active": "12", - "recipients-former": "24", - "recipients-suspended": "0", - "org-mission": "The NGO empowers coastal communities, providing young people with the support and opportunities needed to break the cycle of poverty and build brighter futures.", - "org-description-paragraphs": [ - [ - { - "text": "Reachout Salone (ROSL) is a registered youth-led organization in Sierra Leone focused on advocacy and charitable efforts in coastal communities. Established in 2020, ROSL promotes sustainable human development and climate change adaptation. With an emphasis on youth—especially women and girls—ROSL partners with government agencies, NGOs, and humanitarian organizations to foster sustainable livelihoods and uphold human dignity and security." - } - ], - [ - { - "text": "Its mission is to support the deprived and vulnerable, offering pathways to a better life, while its vision is to empower individuals and communities, break the cycle of poverty, and create equal opportunities for underserved groups." - } - ] - ], - "org-quote": [ - { - "text": "Social Income has brought " - }, + [ { - "text": "meaningful change ", - "color": "accent" - }, + "text": "Additionally, Aurora Impact supports visionary projects addressing global challenges, with entrepreneurship as a catalyst for transformative change." + } + ] + ], + "org-quote": [ + { + "text": "Thanks to Social Income, artisans have the " + }, + { + "text": "stability to focus on their craft,", + "color": "accent" + }, + { + "text": "creating more sustainable livelihoods." + } + ], + "org-quote-author": "Regína Bjarnadóttir", + "org-photo": "", + "org-quote-photo": "logo-aurora.png", + "org-website": "https://www.aurorafoundation.is/en", + "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", + "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" + }, + "jamil-&-nyanga-jaward-foundation": { + "org-slug": "jamil-&-nyanga-jaward-foundation", + "org-short-name": "JNJF", + "org-long-name": "Jamil & Nyanga Jaward Foundation", + "org-foundation": "2017", + "org-image": "jamil.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "35", + "recipients-active": "28", + "recipients-former": "7", + "recipients-suspended": "0", + "org-mission": "The NGO provides widows and children in need with education, support, and opportunities to build better futures.", + "org-description-paragraphs": [ + [ { - "text": "to many of the most vulnerable people and communities." + "text": "The Jamil and Nyanga Jaward Foundation (JNJF), founded in 2017, empowers underprivileged widows and children through education, personal growth, and community support." } ], - "org-quote-author": "Edmond Margai", - "org-photo": "", - "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", - "org-youtube": "https://www.youtube.com/@reachoutsalone8395", - "org-permalink": "socialincome.org/partners/reachout-salone" - }, - { - "org-short-name": "Equal Rights Alliance", - "org-long-name": "Equal Rights Alliance", - "org-foundation": "2019", - "org-image": "equal-rights-alliance.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [3, 10], - "partnership-start": "2022", - "recipients-total": "13", - "recipients-active": "13", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "The NGO advances human rights by increasing awareness and understanding of equal rights, inclusion, and social justice within communities.", - "org-description-paragraphs": [ - [ - { - "text": "Equal Rights Alliance is a non-profit organization committed to protecting and promoting human rights, working toward a society free from violence and discrimination. Its mission is to raise awareness on equal rights, inclusion, and social justice. Focused on advancing human rights in Sierra Leone, the organization advocates for key population groups and promotes international human rights standards." - } - ], - [ - { - "text": "Additionally, it integrates disability into development initiatives, supports disability policies and programs, and bridges the gap between disability and broader human rights issues." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income is a vital tool " - }, - { - "text": "against poverty for the vulnerable. ", - "color": "accent" - }, + "text": "With a vision of re-establishing hope and rebuilding lives, the foundation seeks to break cycles of poverty, enabling widows and children to overcome social exclusion and build brighter futures." + } + ] + ], + "org-quote": [ + { + "text": "Social Income provides a straightforward solution with a " + }, + { + "text": "powerful impact on our beneficiaries,", + "color": "accent" + }, + { + "text": "serving as a financial lifeline that has profoundly transformed their lives." + } + ], + "org-quote-author": "Jamil Jaward", + "org-photo": "", + "org-website": "https://www.jnjf.org/", + "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", + "org-facebook": "https://www.facebook.com/JNJFoundation", + "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" + }, + "reachout-salone": { + "org-slug": "reachout-salone", + "org-short-name": "Reachout Salone", + "org-long-name": "Reachout Salone", + "org-foundation": "2020", + "org-image": "reachout.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "36", + "recipients-active": "12", + "recipients-former": "24", + "recipients-suspended": "0", + "org-mission": "The NGO empowers coastal communities, providing young people with the support and opportunities needed to break the cycle of poverty and build brighter futures.", + "org-description-paragraphs": [ + [ { - "text": "We hope the government adopts it as a key social protection measure." + "text": "Reachout Salone (ROSL) is a registered youth-led organization in Sierra Leone focused on advocacy and charitable efforts in coastal communities. Established in 2020, ROSL promotes sustainable human development and climate change adaptation. With an emphasis on youth—especially women and girls—ROSL partners with government agencies, NGOs, and humanitarian organizations to foster sustainable livelihoods and uphold human dignity and security." } ], - "org-quote-author": "Arnold Gibril Kamara", - "org-photo": "", - "org-facebook": "https://www.facebook.com/groups/693921621002955/", - "org-permalink": "socialincome.org/partners/equal-rights-alliance" - }, - { - "org-short-name": "United Polio Brothers and Sisters", - "org-long-name": "United Polio Brothers and Sisters", - "org-foundation": "1999", - "org-image": "united-polio.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2022", - "recipients-total": "10", - "recipients-active": "10", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "The NGO supports disabled and vulnerable individuals by providing housing, training, and resources to improve their lives and uphold their dignity.", - "org-description-paragraphs": [ - [ - { - "text": "United Polio Brothers and Sisters (UPBSA), founded in 1999 by 12 individuals affected by polio, advocates for housing and training opportunities for disabled and vulnerable people. In 2001, UPBSA established a provisional technical and vocational training center in Freetown and later expanded with three additional branches in rural areas." - } - ], - [ - { - "text": "UPBSA’s mission is to provide a safe, supportive space that equips its members with the tools and opportunities to lead dignified lives." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income has empowered the most vulnerable to " - }, - { - "text": "launch small businesses, ", - "color": "accent" - }, + "text": "Its mission is to support the deprived and vulnerable, offering pathways to a better life, while its vision is to empower individuals and communities, break the cycle of poverty, and create equal opportunities for underserved groups." + } + ] + ], + "org-quote": [ + { + "text": "Social Income has brought " + }, + { + "text": "meaningful change ", + "color": "accent" + }, + { + "text": "to many of the most vulnerable people and communities." + } + ], + "org-quote-author": "Edmond Margai", + "org-photo": "", + "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", + "org-youtube": "https://www.youtube.com/@reachoutsalone8395" + }, + "equal-rights-alliance": { + "org-slug": "equal-rights-alliance", + "org-short-name": "Equal Rights Alliance", + "org-long-name": "Equal Rights Alliance", + "org-foundation": "2019", + "org-image": "equal-rights-alliance.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [3, 10], + "partnership-start": "2022", + "recipients-total": "13", + "recipients-active": "13", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "The NGO advances human rights by increasing awareness and understanding of equal rights, inclusion, and social justice within communities.", + "org-description-paragraphs": [ + [ { - "text": "generating steady income through its dependable monthly support." + "text": "Equal Rights Alliance is a non-profit organization committed to protecting and promoting human rights, working toward a society free from violence and discrimination. Its mission is to raise awareness on equal rights, inclusion, and social justice. Focused on advancing human rights in Sierra Leone, the organization advocates for key population groups and promotes international human rights standards." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "", - "org-permalink": "socialincome.org/partners/united-polio-brothers-and-sisters" - }, - { - "org-short-name": "SLAES", - "org-long-name": "Sierra Leone Association of Ebola Survivors", - "org-foundation": "2015", - "org-image": "slaes.png", - "org-country": "SL", - "org-headquarter": "Kenema", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [4, 5], - "partnership-start": "2024", - "recipients-total": "20", - "recipients-active": "17", - "recipients-former": "2", - "recipients-suspended": "1", - "org-mission": "The community-based NGO supports individuals who have survived the Ebola virus, focusing on those affected by the devastating 2014 outbreak in Sierra Leone.", - "org-description-paragraphs": [ - [ - { - "text": "The Sierra Leone Association of Ebola Survivors (SLAES) is an organization committed to supporting individuals who have overcome the Ebola virus. SLAES offers comprehensive assistance, including access to medical care, psychological support, and ongoing advocacy to ensure that survivors’ rights and needs are recognized and addressed." - } - ], - [ - { - "text": "Through its work, SLAES aims to help survivors rebuild their lives and foster resilience in affected communities." - } - ] - ], - "org-fundraiser-text": [ + [ { - "text": "SLAES is currently fundraising: " - }, + "text": "Additionally, it integrates disability into development initiatives, supports disability policies and programs, and bridges the gap between disability and broader human rights issues." + } + ] + ], + "org-quote": [ + { + "text": "Social Income is a vital tool " + }, + { + "text": "against poverty for the vulnerable. ", + "color": "accent" + }, + { + "text": "We hope the government adopts it as a key social protection measure." + } + ], + "org-quote-author": "Arnold Gibril Kamara", + "org-photo": "", + "org-facebook": "https://www.facebook.com/groups/693921621002955/" + }, + "united-polio-brothers-and-sisters": { + "org-slug": "united-polio-brothers-and-sisters", + "org-short-name": "United Polio Brothers and Sisters", + "org-long-name": "United Polio Brothers and Sisters", + "org-foundation": "1999", + "org-image": "united-polio.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2022", + "recipients-total": "10", + "recipients-active": "10", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "The NGO supports disabled and vulnerable individuals by providing housing, training, and resources to improve their lives and uphold their dignity.", + "org-description-paragraphs": [ + [ { - "text": "Rebuilding Lives", - "href": "https://socialincome.org/campaign/MZmXEVHlDjOOFOMk82jW" + "text": "United Polio Brothers and Sisters (UPBSA), founded in 1999 by 12 individuals affected by polio, advocates for housing and training opportunities for disabled and vulnerable people. In 2001, UPBSA established a provisional technical and vocational training center in Freetown and later expanded with three additional branches in rural areas." } ], - "org-quote": [ + [ { - "text": "It’s more than financial support—it’s a step " - }, + "text": "UPBSA’s mission is to provide a safe, supportive space that equips its members with the tools and opportunities to lead dignified lives." + } + ] + ], + "org-quote": [ + { + "text": "Social Income has empowered the most vulnerable to " + }, + { + "text": "launch small businesses, ", + "color": "accent" + }, + { + "text": "generating steady income through its dependable monthly support." + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + }, + "sierra-leone-association-of-ebola-survivors": { + "org-slug": "sierra-leone-association-of-ebola-survivors", + "org-short-name": "SLAES", + "org-long-name": "Sierra Leone Association of Ebola Survivors", + "org-foundation": "2015", + "org-image": "slaes.png", + "org-country": "SL", + "org-headquarter": "Kenema", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [4, 5], + "partnership-start": "2024", + "recipients-total": "20", + "recipients-active": "17", + "recipients-former": "2", + "recipients-suspended": "1", + "org-mission": "The community-based NGO supports individuals who have survived the Ebola virus, focusing on those affected by the devastating 2014 outbreak in Sierra Leone.", + "org-description-paragraphs": [ + [ { - "text": "towards dignity and resilience.", - "color": "accent" + "text": "The Sierra Leone Association of Ebola Survivors (SLAES) is an organization committed to supporting individuals who have overcome the Ebola virus. SLAES offers comprehensive assistance, including access to medical care, psychological support, and ongoing advocacy to ensure that survivors’ rights and needs are recognized and addressed." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "", - "org-permalink": "socialincome.org/partners/sierra-leone-association-of-ebola-survivors" - } - ] + [ + { + "text": "Through its work, SLAES aims to help survivors rebuild their lives and foster resilience in affected communities." + } + ] + ], + "org-fundraiser-text": [ + { + "text": "SLAES is currently fundraising: " + }, + { + "text": "Rebuilding Lives", + "href": "https://socialincome.org/campaign/MZmXEVHlDjOOFOMk82jW" + } + ], + "org-quote": [ + { + "text": "It’s more than financial support—it’s a step " + }, + { + "text": "towards dignity and resilience.", + "color": "accent" + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + } } diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx index 2bf7d310f..8bdd5bc43 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx @@ -1,16 +1,11 @@ 'use client'; import { FundraiserBadge, RecipientsBadge } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges'; import { CountryBadgeType, RecipientsBadgeType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; -import { - NgoEntryJSON, - NgoHomeProps, - NgoHoverCardType, -} from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; +import { NgoHomeProps, NgoHoverCardType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; import { Badge, Separator, Typography } from '@socialincome/ui'; import { CH, SL } from 'country-flag-icons/react/1x1'; import Image from 'next/image'; import Link from 'next/link'; -import { useParams, useRouter } from 'next/navigation'; import { ReactElement } from 'react'; const country_abbreviations_to_flag_map: Record = { @@ -20,38 +15,7 @@ const country_abbreviations_to_flag_map: Record = { function getFlag(abbreviation: string): ReactElement { return country_abbreviations_to_flag_map[abbreviation] || ; } -export function PartnerHome({ - ngoArray, - partnerSinceTranslation, - badgeRecipientTranslation, - badgeRecipientTranslationBy, - badgeActiveTranslation, - badgeFormerTranslation, - badgeSuspendedTranslation, - fundRaiserTranslation, - missionTranslation, - foundedTranslation, - headquarterTranslation, - moreLinksTranslation, - websiteTranslation, - facebookTranslation, - instagramTranslation, - linkedinTranslation, - youtubeTranslation, - permalinkTranslation, -}: NgoHomeProps) { - const router = useRouter(); - const { orgLongName } = useParams() as { orgLongName: string }; - - const deSlugifiedOrgLongName = orgLongName.replaceAll('-', ' ').replaceAll('%26', '&'); - const currentNgo: NgoEntryJSON | undefined = ngoArray.find( - (ngo) => ngo['org-long-name'].toLowerCase() === deSlugifiedOrgLongName, - ); - if (!currentNgo) { - router.replace('/not-found'); - return; - } - +export function PartnerHome({ currentNgo, translations }: NgoHomeProps) { const image_base_path = '/assets/partners/'; const recipientsBadge: RecipientsBadgeType = { hoverCardOrgName: currentNgo!['org-long-name'], @@ -86,7 +50,7 @@ export function PartnerHome({ orgLinkedIn: currentNgo!['org-linkedin'] ?? null, orgYoutube: currentNgo!['org-youtube'] ?? null, orgFundRaiserText: currentNgo!['org-fundraiser-text'] ?? null, - orgPermalink: currentNgo!['org-permalink'], + orgSlug: currentNgo!['org-slug'], }; const showVisitOnline: boolean = !!( ngoHoverCard.orgInstagram || @@ -121,18 +85,18 @@ export function PartnerHome({
- {partnerSinceTranslation} {ngoHoverCard.partnershipStart} + {translations.partnerSince} {ngoHoverCard.partnershipStart}
{countryBadge?.countryFlagComponent || } @@ -144,7 +108,7 @@ export function PartnerHome({
{showFundRaiser && (
- + {ngoHoverCard.orgFundRaiserText?.map((fragment, index) => { return fragment.href ? ( @@ -214,7 +178,7 @@ export function PartnerHome({ )}
- {missionTranslation} + {translations.mission}
{currentNgo!['org-mission']} @@ -222,7 +186,7 @@ export function PartnerHome({
- {foundedTranslation} + {translations.founded}
{ngoHoverCard.orgFoundation} @@ -230,7 +194,7 @@ export function PartnerHome({
- {headquarterTranslation} + {translations.headquarter}
{ngoHoverCard.orgHeadquarter} @@ -239,32 +203,32 @@ export function PartnerHome({ {showVisitOnline && (
- {moreLinksTranslation} + {translations.moreLinks}
{ngoHoverCard.orgWebsite && ( - {websiteTranslation} + {translations.website} )} {ngoHoverCard.orgFacebook && ( - {facebookTranslation} + {translations.facebook} )} {ngoHoverCard.orgInstagram && ( - {instagramTranslation} + {translations.instagram} )} {ngoHoverCard.orgLinkedIn && ( - {linkedinTranslation} + {translations.linkedin} )} {ngoHoverCard.orgYoutube && ( - {youtubeTranslation} + {translations.youtube} )}
@@ -272,12 +236,12 @@ export function PartnerHome({ )}
- {permalinkTranslation} + {translations.permalink}
- - - {ngoHoverCard.orgPermalink} + + + {`socialincome.org/partners/${ngoHoverCard.orgSlug}`}
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index b128507ca..8de200879 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -278,9 +278,9 @@ export default async function NgoCard({ {translator.t('ngo-generic.permalink')}
- + - {ngoHoverCard.orgPermalink} + {`socialincome.org/partners/${ngoHoverCard.orgSlug}`}
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx index 1d9425d7c..bbd879412 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx @@ -30,7 +30,12 @@ export async function NgoList({ lang }: DefaultParams) { }); const image_base_path = '/assets/partners/'; - const ngoArray: NgoEntryJSON[] = translator.t('ngos'); + const ngos: string[] = translator.t('ngos'); + const ngoArray: NgoEntryJSON[] = []; + ngos.forEach((slug: string) => { + const ngo: NgoEntryJSON = translator.t(slug); + ngoArray.push(ngo); + }); const ngoCardPropsArray: NgoCardProps[] = []; for (let i = 0; i < ngoArray.length; ++i) { const recipientsBadge: RecipientsBadgeType = { @@ -77,7 +82,7 @@ export async function NgoList({ lang }: DefaultParams) { orgLinkedIn: ngoArray[i]['org-linkedin'] ?? null, orgYoutube: ngoArray[i]['org-youtube'] ?? null, orgFundRaiserText: ngoArray[i]['org-fundraiser-text'] ?? null, - orgPermalink: ngoArray[i]['org-permalink'], + orgSlug: ngoArray[i]['org-slug'], }; const ngoCardProps: NgoCardProps = { diff --git a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts index affe5c367..72578046c 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts +++ b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts @@ -24,7 +24,7 @@ type NgoHoverCardType = { orgInstagram?: string; orgLinkedIn?: string; orgYoutube?: string; - orgPermalink: string; + orgSlug: string; orgFundRaiserText?: { text: string; href?: string; @@ -43,6 +43,7 @@ type NgoCardProps = { type NgoEntryJSON = { 'org-image': string; + 'org-slug': string; 'org-short-name': string; 'org-long-name': string; 'org-foundation': string; @@ -69,7 +70,6 @@ type NgoEntryJSON = { 'org-facebook': string; 'org-linkedin': string; 'org-youtube': string; - 'org-permalink': string; 'org-fundraiser-text': { text: string; href?: string; @@ -77,24 +77,26 @@ type NgoEntryJSON = { }; type NgoHomeProps = { - ngoArray: NgoEntryJSON[]; - partnerSinceTranslation: string; - badgeRecipientTranslation: string; - badgeRecipientTranslationBy: string; - badgeActiveTranslation: string; - badgeFormerTranslation: string; - badgeSuspendedTranslation: string; - fundRaiserTranslation: string; - missionTranslation: string; - foundedTranslation: string; - headquarterTranslation: string; - moreLinksTranslation: string; - websiteTranslation: string; - facebookTranslation: string; - instagramTranslation: string; - linkedinTranslation: string; - youtubeTranslation: string; - permalinkTranslation: string; + currentNgo: NgoEntryJSON; + translations: { + partnerSince: string; + badgeRecipient: string; + badgeRecipientBy: string; + badgeActive: string; + badgeFormer: string; + badgeSuspended: string; + fundRaiser: string; + mission: string; + founded: string; + headquarter: string; + moreLinks: string; + website: string; + facebook: string; + instagram: string; + linkedin: string; + youtube: string; + permalink: string; + }; }; export type { NgoCardProps, NgoEntryJSON, NgoHomeProps, NgoHoverCardType }; diff --git a/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx b/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx deleted file mode 100644 index 3541decb5..000000000 --- a/website/src/app/[lang]/[region]/(website)/partners/[orgLongName]/page.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { DefaultPageProps } from '@/app/[lang]/[region]'; -import { PartnerHome } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerHome'; -import { Translator } from '@socialincome/shared/src/utils/i18n'; - -export default async function Page({ params: { lang } }: DefaultPageProps) { - const translator = await Translator.getInstance({ - language: lang, - namespaces: ['website-partners', 'website-common', 'countries'], - }); - - return ( - - ); -} diff --git a/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx b/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx new file mode 100644 index 000000000..f91c96a59 --- /dev/null +++ b/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx @@ -0,0 +1,50 @@ +import { DefaultPageProps, DefaultParams } from '@/app/[lang]/[region]'; +import { PartnerHome } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerHome'; +import { NgoEntryJSON } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; +import { Translator } from '@socialincome/shared/src/utils/i18n'; +import { redirect } from 'next/navigation'; + +function getNGOTranslation(translator: Translator, slug: string): NgoEntryJSON { + return translator.t(slug); +} + +type PartnerPageProps = { + params: { + slug: string; + } & DefaultParams; +} & DefaultPageProps; + +export default async function Page({ params: { lang, slug } }: PartnerPageProps) { + const translator = await Translator.getInstance({ + language: lang, + namespaces: ['website-partners', 'website-common', 'countries'], + }); + + const translations = { + partnerSince: translator.t('ngo-generic.partner-since'), + badgeRecipient: translator.t('badges.recipients'), + badgeRecipientBy: translator.t('badges.recipients-by'), + badgeActive: translator.t('badges.active'), + badgeFormer: translator.t('badges.former'), + badgeSuspended: translator.t('badges.suspended'), + fundRaiser: translator.t('ngo-generic.fundraiser'), + mission: translator.t('ngo-generic.mission'), + founded: translator.t('ngo-generic.founded'), + headquarter: translator.t('ngo-generic.headquarter'), + moreLinks: translator.t('links.more'), + website: translator.t('links.website'), + facebook: translator.t('links.facebook'), + instagram: translator.t('links.instagram'), + linkedin: translator.t('links.linkedin'), + youtube: translator.t('links.youtube'), + permalink: translator.t('ngo-generic.permalink'), + }; + + const currentNgo: NgoEntryJSON | undefined = getNGOTranslation(translator, slug.replaceAll('%26', '&')); + if (!currentNgo) { + redirect('/not-found'); + return; + } + + return ; +} From 1b5ea2c981f7c54798eb7fdb9b6a5f8f3b22796e Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Wed, 4 Dec 2024 22:16:31 +0530 Subject: [PATCH 12/17] Update translations as per previous commit --- shared/locales/de/website-partners.json | 512 ++++++++++++------------ shared/locales/fr/website-partners.json | 504 +++++++++++------------ shared/locales/it/website-partners.json | 504 +++++++++++------------ 3 files changed, 781 insertions(+), 739 deletions(-) diff --git a/shared/locales/de/website-partners.json b/shared/locales/de/website-partners.json index f18ce275b..5bb6d46e8 100644 --- a/shared/locales/de/website-partners.json +++ b/shared/locales/de/website-partners.json @@ -28,284 +28,298 @@ "founded": "Gründung", "partner-since": "Partner seit", "headquarter": "Hauptsitz", - "mission": "Mission" + "mission": "Mission", + "fundraiser": "Fundraiser", + "permalink": "Permalink" }, "ngos": [ - { - "org-short-name": "Aurora Stiftung", - "org-long-name": "Aurora Stiftung", - "org-foundation": "2007", - "org-image": "aurora.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "International NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2020", - "recipients-total": "42", - "recipients-active": "20", - "recipients-former": "22", - "recipients-suspended": "0", - "org-mission": "Die NGO fördert Kreativität und hilft Menschen, ihr Leben und ihre Gemeinschaften durch Entwicklungs- und Kulturprojekte zu verbessern.", - "org-description-paragraphs": [ - [ - { - "text": "Die Aurora-Stiftung schafft Wirkung durch Kultur- und Entwicklungsprojekte, die " - }, - { - "text": "Kreativität feiern ", - "href": "https://www.aurorafoundation.is/en" - }, - { - "text": "und die Widerstandsfähigkeit von Gemeinschaften stärken." - } - ], - [ - { - "text": "Gegründet im Jahr 2007 in Island, fördert Aurora lokale Kunst und nachhaltige Praktiken in Sierra Leone, z. B. durch Initiativen wie die Lettie Stuart Pottery und den Sweet Salone Handwerksladen, der traditionelle Handwerkskunst einem globalen Publikum näherbringt." - } - ], - [ - { - "text": "Darüber hinaus unterstützt Aurora Impact visionäre Projekte, die globale Herausforderungen angehen, und fördert Unternehmertum als Katalysator für transformative Veränderungen." - } - ] - ], - "org-quote": [ + "aurora-foundation", + "jamil-&-nyanga-jaward-foundation", + "reachout-salone", + "equal-rights-alliance", + "united-polio-brothers-and-sisters", + "sierra-leone-association-of-ebola-survivors" + ], + "aurora-foundation": { + "org-slug": "aurora-foundation", + "org-short-name": "Aurora Stiftung", + "org-long-name": "Aurora Stiftung", + "org-foundation": "2007", + "org-image": "aurora.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "International NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2020", + "recipients-total": "42", + "recipients-active": "20", + "recipients-former": "22", + "recipients-suspended": "0", + "org-mission": "Die NGO fördert Kreativität und hilft Menschen, ihr Leben und ihre Gemeinschaften durch Entwicklungs- und Kulturprojekte zu verbessern.", + "org-description-paragraphs": [ + [ { - "text": "Dank Social Income haben Kunsthandwerker die " + "text": "Die Aurora-Stiftung schafft Wirkung durch Kultur- und Entwicklungsprojekte, die " }, { - "text": "Stabilität, sich auf ihr Handwerk zu konzentrieren,", - "color": "accent" + "text": "Kreativität feiern ", + "href": "https://www.aurorafoundation.is/en" }, { - "text": "und schaffen dadurch nachhaltigere Lebensgrundlagen." + "text": "und die Widerstandsfähigkeit von Gemeinschaften stärken." } ], - "org-quote-author": "Regína Bjarnadóttir", - "org-photo": "", - "org-website": "https://www.aurorafoundation.is/en", - "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", - "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" - }, - { - "org-short-name": "JNJF", - "org-long-name": "Jamil & Nyanga Jaward Stiftung", - "org-foundation": "2017", - "org-image": "jamil.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "35", - "recipients-active": "28", - "recipients-former": "7", - "recipients-suspended": "0", - "org-mission": "Die NGO bietet bedürftigen Witwen und Kindern Bildung, Unterstützung und Möglichkeiten, um bessere Zukunftsperspektiven aufzubauen.", - "org-description-paragraphs": [ - [ - { - "text": "Die Jamil und Nyanga Jaward Stiftung (JNJF), gegründet im Jahr 2017, befähigt benachteiligte Witwen und Kinder durch Bildung, persönliche Entwicklung und Gemeinschaftshilfe. " - } - ], - [ - { - "text": "Mit der Vision, Hoffnung wiederherzustellen und Leben neu aufzubauen, setzt sich die Stiftung dafür ein, Armutskreisläufe zu durchbrechen und es Witwen und Kindern zu ermöglichen, soziale Ausgrenzung zu überwinden und bessere Zukunftsperspektiven zu schaffen." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income ist eine einfache Lösung mit " - }, + "text": "Gegründet im Jahr 2007 in Island, fördert Aurora lokale Kunst und nachhaltige Praktiken in Sierra Leone, z. B. durch Initiativen wie die Lettie Stuart Pottery und den Sweet Salone Handwerksladen, der traditionelle Handwerkskunst einem globalen Publikum näherbringt." + } + ], + [ { - "text": "grosser Wirkung für unsere Community,", - "color": "accent" - }, + "text": "Darüber hinaus unterstützt Aurora Impact visionäre Projekte, die globale Herausforderungen angehen, und fördert Unternehmertum als Katalysator für transformative Veränderungen." + } + ] + ], + "org-quote": [ + { + "text": "Dank Social Income haben Kunsthandwerker die " + }, + { + "text": "Stabilität, sich auf ihr Handwerk zu konzentrieren,", + "color": "accent" + }, + { + "text": "und schaffen dadurch nachhaltigere Lebensgrundlagen." + } + ], + "org-quote-author": "Regína Bjarnadóttir", + "org-photo": "", + "org-website": "https://www.aurorafoundation.is/en", + "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", + "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" + }, + "jamil-&-nyanga-jaward-foundation": { + "org-slug": "jamil-&-nyanga-jaward-foundation", + "org-short-name": "JNJF", + "org-long-name": "Jamil & Nyanga Jaward Stiftung", + "org-foundation": "2017", + "org-image": "jamil.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "35", + "recipients-active": "28", + "recipients-former": "7", + "recipients-suspended": "0", + "org-mission": "Die NGO bietet bedürftigen Witwen und Kindern Bildung, Unterstützung und Möglichkeiten, um bessere Zukunftsperspektiven aufzubauen.", + "org-description-paragraphs": [ + [ { - "text": "und bietet finanzielle Unterstützung, die das Leben nachhaltig verändert." + "text": "Die Jamil und Nyanga Jaward Stiftung (JNJF), gegründet im Jahr 2017, befähigt benachteiligte Witwen und Kinder durch Bildung, persönliche Entwicklung und Gemeinschaftshilfe. " } ], - "org-quote-author": "Jamil Jaward", - "org-photo": "", - "org-website": "https://www.jnjf.org/", - "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", - "org-facebook": "https://www.facebook.com/JNJFoundation", - "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" - }, - { - "org-short-name": "Reachout Salone", - "org-long-name": "Reachout Salone", - "org-foundation": "2020", - "org-image": "reachout.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "36", - "recipients-active": "12", - "recipients-former": "24", - "recipients-suspended": "0", - "org-mission": "Die NGO stärkt Communities und bietet jungen Menschen die Unterstützung und Chancen, die sie brauchen, um den Kreislauf der Armut zu durchbrechen und eine bessere Zukunft aufzubauen.", - "org-description-paragraphs": [ - [ - { - "text": "Reachout Salone (ROSL) ist eine eingetragene, von jungen Menschen geführte Organisation in Sierra Leone, die sich auf Advocacy und Wohltätigkeitsarbeit in Küstengemeinden konzentriert. Gegründet im Jahr 2020, setzt sich ROSL für nachhaltige menschliche Entwicklung und Anpassung an den Klimawandel ein." - } - ], - [ - { - "text": "Mit einem besonderen Fokus auf junge Menschen, insbesondere Frauen und Mädchen, arbeitet ROSL mit Regierungsbehörden, NGOs und humanitären Organisationen zusammen, um nachhaltige Lebensgrundlagen zu fördern und die Würde und Sicherheit der Menschen zu wahren." - } - ], - [ - { - "text": "Die Mission ist es, die Benachteiligten und Schutzbedürftigen zu unterstützen und ihnen Wege zu einem besseren Leben zu bieten. Die Vision ist es, Einzelpersonen und Gemeinschaften zu stärken, den Kreislauf der Armut zu durchbrechen und benachteiligten Gruppen gleiche Chancen zu bieten." - } - ] - ], - "org-quote": [ - { - "text": "Social Income hat " - }, + [ { - "text": "bedeutende Veränderungen ", - "color": "accent" - }, + "text": "Mit der Vision, Hoffnung wiederherzustellen und Leben neu aufzubauen, setzt sich die Stiftung dafür ein, Armutskreisläufe zu durchbrechen und es Witwen und Kindern zu ermöglichen, soziale Ausgrenzung zu überwinden und bessere Zukunftsperspektiven zu schaffen." + } + ] + ], + "org-quote": [ + { + "text": "Social Income ist eine einfache Lösung mit " + }, + { + "text": "grosser Wirkung für unsere Community,", + "color": "accent" + }, + { + "text": "und bietet finanzielle Unterstützung, die das Leben nachhaltig verändert." + } + ], + "org-quote-author": "Jamil Jaward", + "org-photo": "", + "org-website": "https://www.jnjf.org/", + "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", + "org-facebook": "https://www.facebook.com/JNJFoundation", + "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" + }, + "reachout-salone": { + "org-slug": "reachout-salone", + "org-short-name": "Reachout Salone", + "org-long-name": "Reachout Salone", + "org-foundation": "2020", + "org-image": "reachout.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "36", + "recipients-active": "12", + "recipients-former": "24", + "recipients-suspended": "0", + "org-mission": "Die NGO stärkt Communities und bietet jungen Menschen die Unterstützung und Chancen, die sie brauchen, um den Kreislauf der Armut zu durchbrechen und eine bessere Zukunft aufzubauen.", + "org-description-paragraphs": [ + [ { - "text": "für viele der schutzbedürftigsten Menschen und Gemeinschaften bewirkt." + "text": "Reachout Salone (ROSL) ist eine eingetragene, von jungen Menschen geführte Organisation in Sierra Leone, die sich auf Advocacy und Wohltätigkeitsarbeit in Küstengemeinden konzentriert. Gegründet im Jahr 2020, setzt sich ROSL für nachhaltige menschliche Entwicklung und Anpassung an den Klimawandel ein." } ], - "org-quote-author": "Edmond Margai", - "org-photo": "", - "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", - "org-youtube": "https://www.youtube.com/@reachoutsalone8395" - }, - { - "org-short-name": "Equal Rights Alliance", - "org-long-name": "Equal Rights Alliance", - "org-foundation": "2019", - "org-image": "equal-rights-alliance.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [3, 10], - "partnership-start": "2022", - "recipients-total": "13", - "recipients-active": "13", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "Die NGO fördert Menschenrechte, indem sie das Bewusstsein und Verständnis für Gleichberechtigung, Inklusion und soziale Gerechtigkeit in den Gemeinschaften stärkt.", - "org-description-paragraphs": [ - [ - { - "text": "Equal Rights Alliance ist eine gemeinnützige Organisation, die sich dem Schutz und der Förderung der Menschenrechte widmet und auf eine Gesellschaft ohne Gewalt und Diskriminierung hinarbeitet. Ihr Ziel ist es, das Bewusstsein für Gleichberechtigung, Inklusion und soziale Gerechtigkeit zu schärfen." - } - ], - [ - { - "text": "Mit einem Schwerpunkt auf der Förderung der Menschenrechte in Sierra Leone setzt sich die Organisation für spezifische Bevölkerungsgruppen ein und unterstützt internationale Menschenrechtsstandards. Zusätzlich integriert sie das Thema Behinderung in Entwicklungsinitiativen, unterstützt behindertenpolitische Massnahmen und Programme und überbrückt die Kluft zwischen Behinderung und allgemeinen Menschenrechtsfragen." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income ist ein wichtiges Mittel " - }, + "text": "Mit einem besonderen Fokus auf junge Menschen, insbesondere Frauen und Mädchen, arbeitet ROSL mit Regierungsbehörden, NGOs und humanitären Organisationen zusammen, um nachhaltige Lebensgrundlagen zu fördern und die Würde und Sicherheit der Menschen zu wahren." + } + ], + [ { - "text": "im Kampf gegen Armut für die Schutzbedürftigen. ", - "color": "accent" - }, + "text": "Die Mission ist es, die Benachteiligten und Schutzbedürftigen zu unterstützen und ihnen Wege zu einem besseren Leben zu bieten. Die Vision ist es, Einzelpersonen und Gemeinschaften zu stärken, den Kreislauf der Armut zu durchbrechen und benachteiligten Gruppen gleiche Chancen zu bieten." + } + ] + ], + "org-quote": [ + { + "text": "Social Income hat " + }, + { + "text": "bedeutende Veränderungen ", + "color": "accent" + }, + { + "text": "für viele der schutzbedürftigsten Menschen und Gemeinschaften bewirkt." + } + ], + "org-quote-author": "Edmond Margai", + "org-photo": "", + "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", + "org-youtube": "https://www.youtube.com/@reachoutsalone8395" + }, + "equal-rights-alliance": { + "org-slug": "equal-rights-alliance", + "org-short-name": "Equal Rights Alliance", + "org-long-name": "Equal Rights Alliance", + "org-foundation": "2019", + "org-image": "equal-rights-alliance.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [3, 10], + "partnership-start": "2022", + "recipients-total": "13", + "recipients-active": "13", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "Die NGO fördert Menschenrechte, indem sie das Bewusstsein und Verständnis für Gleichberechtigung, Inklusion und soziale Gerechtigkeit in den Gemeinschaften stärkt.", + "org-description-paragraphs": [ + [ { - "text": "Wir hoffen, dass die Regierung es als zentrale Massnahme der sozialen Absicherung übernimmt." + "text": "Equal Rights Alliance ist eine gemeinnützige Organisation, die sich dem Schutz und der Förderung der Menschenrechte widmet und auf eine Gesellschaft ohne Gewalt und Diskriminierung hinarbeitet. Ihr Ziel ist es, das Bewusstsein für Gleichberechtigung, Inklusion und soziale Gerechtigkeit zu schärfen." } ], - "org-quote-author": "Arnold Gibril Kamara", - "org-photo": "", - "org-facebook": "https://www.facebook.com/groups/693921621002955/" - }, - { - "org-short-name": "United Polio Brothers and Sisters", - "org-long-name": "United Polio Brothers and Sisters", - "org-foundation": "1999", - "org-image": "united-polio.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2022", - "recipients-total": "10", - "recipients-active": "10", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "Die NGO unterstützt Menschen mit Behinderungen und Schutzbedürftige, indem sie Wohnraum, Schulungen und Ressourcen bereitstellt, um ihr Leben zu verbessern und ihre Würde zu wahren.", - "org-description-paragraphs": [ - [ - { - "text": "United Polio Brothers and Sisters (UPBSA), 1999 von 12 an Polio erkrankten Personen gegründet, setzt sich für Wohnraum und Ausbildungsmöglichkeiten für Menschen mit Behinderungen und Schutzbedürftige ein. Im Jahr 2001 gründete UPBSA ein provisorisches technisches und berufliches Ausbildungszentrum in Freetown und erweiterte später um drei zusätzliche Niederlassungen in ländlichen Gebieten." - } - ], - [ - { - "text": "Die Mission von UPBSA ist es, einen sicheren, unterstützenden Raum zu schaffen, der den Mitgliedern die nötigen Werkzeuge und Möglichkeiten bietet, um ein würdevolles Leben zu führen." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income hat den Schutzbedürftigsten geholfen, " - }, - { - "text": "kleine Unternehmen zu gründen, ", - "color": "accent" - }, + "text": "Mit einem Schwerpunkt auf der Förderung der Menschenrechte in Sierra Leone setzt sich die Organisation für spezifische Bevölkerungsgruppen ein und unterstützt internationale Menschenrechtsstandards. Zusätzlich integriert sie das Thema Behinderung in Entwicklungsinitiativen, unterstützt behindertenpolitische Massnahmen und Programme und überbrückt die Kluft zwischen Behinderung und allgemeinen Menschenrechtsfragen." + } + ] + ], + "org-quote": [ + { + "text": "Social Income ist ein wichtiges Mittel " + }, + { + "text": "im Kampf gegen Armut für die Schutzbedürftigen. ", + "color": "accent" + }, + { + "text": "Wir hoffen, dass die Regierung es als zentrale Massnahme der sozialen Absicherung übernimmt." + } + ], + "org-quote-author": "Arnold Gibril Kamara", + "org-photo": "", + "org-facebook": "https://www.facebook.com/groups/693921621002955/" + }, + "united-polio-brothers-and-sisters": { + "org-slug": "united-polio-brothers-and-sisters", + "org-short-name": "United Polio Brothers and Sisters", + "org-long-name": "United Polio Brothers and Sisters", + "org-foundation": "1999", + "org-image": "united-polio.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2022", + "recipients-total": "10", + "recipients-active": "10", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "Die NGO unterstützt Menschen mit Behinderungen und Schutzbedürftige, indem sie Wohnraum, Schulungen und Ressourcen bereitstellt, um ihr Leben zu verbessern und ihre Würde zu wahren.", + "org-description-paragraphs": [ + [ { - "text": "und ein regelmässiges Einkommen durch die verlässliche monatliche Unterstützung zu erzielen." + "text": "United Polio Brothers and Sisters (UPBSA), 1999 von 12 an Polio erkrankten Personen gegründet, setzt sich für Wohnraum und Ausbildungsmöglichkeiten für Menschen mit Behinderungen und Schutzbedürftige ein. Im Jahr 2001 gründete UPBSA ein provisorisches technisches und berufliches Ausbildungszentrum in Freetown und erweiterte später um drei zusätzliche Niederlassungen in ländlichen Gebieten." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "" - }, - { - "org-short-name": "SLAES", - "org-long-name": "Sierra Leone Association of Ebola Survivors", - "org-foundation": "2015", - "org-image": "slaes.png", - "org-country": "SL", - "org-headquarter": "Kenema", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [4, 5], - "partnership-start": "2024", - "recipients-total": "20", - "recipients-active": "17", - "recipients-former": "2", - "recipients-suspended": "1", - "org-mission": "Die gemeinschaftlich geführte NGO unterstützt Menschen, die das Ebola-Virus überlebt haben, mit einem besonderen Fokus auf die Betroffenen des verheerenden Ausbruchs von 2014 in Sierra Leone.", - "org-description-paragraphs": [ - [ - { - "text": "Die Sierra Leone Association of Ebola Survivors (SLAES) ist eine Organisation, die sich der Unterstützung von Ebola-Überlebenden widmet. SLAES bietet umfassende Hilfe an, darunter Zugang zu medizinischer Versorgung, psychologische Unterstützung und kontinuierliche Interessenvertretung, um sicherzustellen, dass die Rechte und Bedürfnisse der Überlebenden anerkannt und berücksichtigt werden." - } - ], - [ - { - "text": "Durch ihre Arbeit hilft SLAES den Überlebenden, ihr Leben neu aufzubauen und stärkt die Widerstandsfähigkeit in den betroffenen Gemeinschaften." - } - ] - ], - "org-quote": [ + [ { - "text": "Es ist mehr als nur finanzielle Unterstützung—es ist ein Schritt " - }, + "text": "Die Mission von UPBSA ist es, einen sicheren, unterstützenden Raum zu schaffen, der den Mitgliedern die nötigen Werkzeuge und Möglichkeiten bietet, um ein würdevolles Leben zu führen." + } + ] + ], + "org-quote": [ + { + "text": "Social Income hat den Schutzbedürftigsten geholfen, " + }, + { + "text": "kleine Unternehmen zu gründen, ", + "color": "accent" + }, + { + "text": "und ein regelmässiges Einkommen durch die verlässliche monatliche Unterstützung zu erzielen." + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + }, + "sierra-leone-association-of-ebola-survivors": { + "org-slug": "sierra-leone-association-of-ebola-survivors", + "org-short-name": "SLAES", + "org-long-name": "Sierra Leone Association of Ebola Survivors", + "org-foundation": "2015", + "org-image": "slaes.png", + "org-country": "SL", + "org-headquarter": "Kenema", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [4, 5], + "partnership-start": "2024", + "recipients-total": "20", + "recipients-active": "17", + "recipients-former": "2", + "recipients-suspended": "1", + "org-mission": "Die gemeinschaftlich geführte NGO unterstützt Menschen, die das Ebola-Virus überlebt haben, mit einem besonderen Fokus auf die Betroffenen des verheerenden Ausbruchs von 2014 in Sierra Leone.", + "org-description-paragraphs": [ + [ { - "text": "hin zu Würde und Resilienz.", - "color": "accent" + "text": "Die Sierra Leone Association of Ebola Survivors (SLAES) ist eine Organisation, die sich der Unterstützung von Ebola-Überlebenden widmet. SLAES bietet umfassende Hilfe an, darunter Zugang zu medizinischer Versorgung, psychologische Unterstützung und kontinuierliche Interessenvertretung, um sicherzustellen, dass die Rechte und Bedürfnisse der Überlebenden anerkannt und berücksichtigt werden." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "" - } - ] + [ + { + "text": "Durch ihre Arbeit hilft SLAES den Überlebenden, ihr Leben neu aufzubauen und stärkt die Widerstandsfähigkeit in den betroffenen Gemeinschaften." + } + ] + ], + "org-quote": [ + { + "text": "Es ist mehr als nur finanzielle Unterstützung—es ist ein Schritt " + }, + { + "text": "hin zu Würde und Resilienz.", + "color": "accent" + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + } } diff --git a/shared/locales/fr/website-partners.json b/shared/locales/fr/website-partners.json index 428dd25c4..2e68ad4ab 100644 --- a/shared/locales/fr/website-partners.json +++ b/shared/locales/fr/website-partners.json @@ -28,279 +28,293 @@ "founded": "Fondation", "partner-since": "Partenaire depuis", "headquarter": "Siège social", - "mission": "Mission" + "mission": "Mission", + "fundraiser": "Fundraiser", + "permalink": "Permalink" }, "ngos": [ - { - "org-short-name": "Fondation Aurora", - "org-long-name": "Fondation Aurora", - "org-foundation": "2007", - "org-image": "aurora.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "International NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2020", - "recipients-total": "42", - "recipients-active": "20", - "recipients-former": "22", - "recipients-suspended": "0", - "org-mission": "Cette ONG encourage la créativité et aide les gens à améliorer leur vie et leur communauté par le biais de projets de développement et de projets culturels.", - "org-description-paragraphs": [ - [ - { - "text": "La Fondation Aurora soutient des projets culturels et de développement " - }, - { - "text": "des projets culturels et de développement", - "href": "https://www.aurorafoundation.is/en" - }, - { - "text": " qui mettent en valeur la créativité et la résilience des communautés." - } - ], - [ - { - "text": "Fondée en 2007 en Islande, Aurora promeut les arts locaux et les pratiques durables en Sierra Leone. Des initiatives telles que Lettie Stuart Pottery et la boutique d'artisanat Sweet Salone font connaître l'artisanat traditionnel à un public mondial." - } - ], - [ - { - "text": "Aurora soutient aussi des projets visionnaires qui s’attaquent à des défis mondiaux en comptant sur l’esprit d’entreprise comme catalyseur de changement." - } - ] - ], - "org-quote": [ + "aurora-foundation", + "jamil-&-nyanga-jaward-foundation", + "reachout-salone", + "equal-rights-alliance", + "united-polio-brothers-and-sisters", + "sierra-leone-association-of-ebola-survivors" + ], + "aurora-foundation": { + "org-slug": "aurora-foundation", + "org-short-name": "Fondation Aurora", + "org-long-name": "Fondation Aurora", + "org-foundation": "2007", + "org-image": "aurora.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "International NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2020", + "recipients-total": "42", + "recipients-active": "20", + "recipients-former": "22", + "recipients-suspended": "0", + "org-mission": "Cette ONG encourage la créativité et aide les gens à améliorer leur vie et leur communauté par le biais de projets de développement et de projets culturels.", + "org-description-paragraphs": [ + [ { - "text": "Social Income donne aux artisans la stabilité nécessaire " + "text": "La Fondation Aurora soutient des projets culturels et de développement " }, { - "text": "pour se concentrer sur leur métier, ", - "color": "accent" + "text": "des projets culturels et de développement", + "href": "https://www.aurorafoundation.is/en" }, { - "text": "tout en créant des sources de revenu durables." + "text": " qui mettent en valeur la créativité et la résilience des communautés." } ], - "org-quote-author": "Regína Bjarnadóttir", - "org-photo": "", - "org-website": "https://www.aurorafoundation.is/en", - "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", - "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" - }, - { - "org-short-name": "JNJF", - "org-long-name": "Jamil & Nyanga Jaward Foundation", - "org-foundation": "2017", - "org-image": "jamil.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "35", - "recipients-active": "28", - "recipients-former": "7", - "recipients-suspended": "0", - "org-mission": "Cette ONG apporte aux veuves et aux enfants dans le besoin une éducation, un soutien et la possibilité de se construire un avenir meilleur.", - "org-description-paragraphs": [ - [ - { - "text": "La Fondation Jamil et Nyanga Jaward (JNJF), fondée en 2017, renforce l'autonomie des veuves et des enfants défavorisés grâce à l'éducation, au développement personnel et au soutien de la communauté." - } - ], - [ - { - "text": "Animée par sa vision de restaurer l'espoir et de reconstruire des vies, la fondation cherche à briser les cycles de pauvreté, ce qui permet aux veuves et aux enfants de sortir de l'exclusion sociale et de se construire un avenir meilleur." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income est une solution simple dont " - }, + "text": "Fondée en 2007 en Islande, Aurora promeut les arts locaux et les pratiques durables en Sierra Leone. Des initiatives telles que Lettie Stuart Pottery et la boutique d'artisanat Sweet Salone font connaître l'artisanat traditionnel à un public mondial." + } + ], + [ { - "text": "l'impact sur nos bénéficiaires est considérable.", - "color": "accent" - }, + "text": "Aurora soutient aussi des projets visionnaires qui s’attaquent à des défis mondiaux en comptant sur l’esprit d’entreprise comme catalyseur de changement." + } + ] + ], + "org-quote": [ + { + "text": "Social Income donne aux artisans la stabilité nécessaire " + }, + { + "text": "pour se concentrer sur leur métier, ", + "color": "accent" + }, + { + "text": "tout en créant des sources de revenu durables." + } + ], + "org-quote-author": "Regína Bjarnadóttir", + "org-photo": "", + "org-website": "https://www.aurorafoundation.is/en", + "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", + "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" + }, + "jamil-&-nyanga-jaward-foundation": { + "org-slug": "jamil-&-nyanga-jaward-foundation", + "org-short-name": "JNJF", + "org-long-name": "Jamil & Nyanga Jaward Foundation", + "org-foundation": "2017", + "org-image": "jamil.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "35", + "recipients-active": "28", + "recipients-former": "7", + "recipients-suspended": "0", + "org-mission": "Cette ONG apporte aux veuves et aux enfants dans le besoin une éducation, un soutien et la possibilité de se construire un avenir meilleur.", + "org-description-paragraphs": [ + [ { - "text": "C'est une bouée de sauvetage financière qui a profondément transformé leur vie." + "text": "La Fondation Jamil et Nyanga Jaward (JNJF), fondée en 2017, renforce l'autonomie des veuves et des enfants défavorisés grâce à l'éducation, au développement personnel et au soutien de la communauté." } ], - "org-quote-author": "Jamil Jaward", - "org-photo": "", - "org-website": "https://www.jnjf.org/", - "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", - "org-facebook": "https://www.facebook.com/JNJFoundation", - "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" - }, - { - "org-short-name": "Reachout Salone", - "org-long-name": "Reachout Salone", - "org-foundation": "2020", - "org-image": "reachout.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "36", - "recipients-active": "12", - "recipients-former": "24", - "recipients-suspended": "0", - "org-mission": "Cette ONG renforce les communautés côtières en offrant aux jeunes le soutien et les débouchés dont ils ont besoin pour briser le cycle de la pauvreté.", - "org-description-paragraphs": [ - [ - { - "text": "Reachout Salone (ROSL) est une organisation de jeunesse reconnue en Sierra Leone. Elle est axée sur la défense des droits et les actions caritatives au sein des communautés côtières. Créée en 2020, ROSL promeut le développement humain durable et l'adaptation au changement climatique. En collaboration avec des agences gouvernementales, des ONG et des organisations humanitaires, ROSL mise sur les jeunes, en particulier les femmes et les filles, pour mettre en place des sources de revenu durables et préserver la dignité humaine et la sécurité." - } - ], - [ - { - "text": "ROSL a pour mission de soutenir les personnes démunies et vulnérables en leur offrant les moyens d’accéder à une vie meilleure. Sa vision est de rendre autonomes les individus et les communautés, de briser le cycle de la pauvreté et de créer une égalité des chances pour les groupes marginalisés." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income a apporté des " - }, - { - "text": "changements significatifs ", - "color": "accent" - }, + "text": "Animée par sa vision de restaurer l'espoir et de reconstruire des vies, la fondation cherche à briser les cycles de pauvreté, ce qui permet aux veuves et aux enfants de sortir de l'exclusion sociale et de se construire un avenir meilleur." + } + ] + ], + "org-quote": [ + { + "text": "Social Income est une solution simple dont " + }, + { + "text": "l'impact sur nos bénéficiaires est considérable.", + "color": "accent" + }, + { + "text": "C'est une bouée de sauvetage financière qui a profondément transformé leur vie." + } + ], + "org-quote-author": "Jamil Jaward", + "org-photo": "", + "org-website": "https://www.jnjf.org/", + "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", + "org-facebook": "https://www.facebook.com/JNJFoundation", + "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" + }, + "reachout-salone": { + "org-slug": "reachout-salone", + "org-short-name": "Reachout Salone", + "org-long-name": "Reachout Salone", + "org-foundation": "2020", + "org-image": "reachout.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "36", + "recipients-active": "12", + "recipients-former": "24", + "recipients-suspended": "0", + "org-mission": "Cette ONG renforce les communautés côtières en offrant aux jeunes le soutien et les débouchés dont ils ont besoin pour briser le cycle de la pauvreté.", + "org-description-paragraphs": [ + [ { - "text": "à de nombreuses personnes et communautés parmi les plus vulnérables." + "text": "Reachout Salone (ROSL) est une organisation de jeunesse reconnue en Sierra Leone. Elle est axée sur la défense des droits et les actions caritatives au sein des communautés côtières. Créée en 2020, ROSL promeut le développement humain durable et l'adaptation au changement climatique. En collaboration avec des agences gouvernementales, des ONG et des organisations humanitaires, ROSL mise sur les jeunes, en particulier les femmes et les filles, pour mettre en place des sources de revenu durables et préserver la dignité humaine et la sécurité." } ], - "org-quote-author": "Edmond Margai", - "org-photo": "", - "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", - "org-youtube": "https://www.youtube.com/@reachoutsalone8395" - }, - { - "org-short-name": "Equal Rights Alliance", - "org-long-name": "Equal Rights Alliance", - "org-foundation": "2019", - "org-image": "equal-rights-alliance.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [3, 10], - "partnership-start": "2022", - "recipients-total": "13", - "recipients-active": "13", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "Cette ONG fait progresser les droits humains par son travail de sensibilisation aux enjeux d’égalité, d’inclusion et de justice sociale dans les communautés.", - "org-description-paragraphs": [ - [ - { - "text": "Equal Rights Alliance est une organisation à but non lucratif engagée dans la protection et la promotion des droits humains. Elle œuvre pour une société exempte de violence et de discrimination. Sa mission est de faire connaître l'égalité des droits, l'inclusion et la justice sociale. Centrée sur la promotion des droits humains en Sierra Leone, l'organisation défend les intérêts de groupes de population clés et promeut les normes internationales en matière de droits humains." - } - ], - [ - { - "text": "De plus, elle intègre la question du handicap dans les initiatives de développement, soutient les politiques et les programmes relatifs au handicap et fait le lien entre la question du handicap et les questions plus générales de droits humains." - } - ] - ], - "org-quote": [ - { - "text": "Social Income est un outil essentiel de " - }, + [ { - "text": "lutte contre la pauvreté ", - "color": "accent" - }, + "text": "ROSL a pour mission de soutenir les personnes démunies et vulnérables en leur offrant les moyens d’accéder à une vie meilleure. Sa vision est de rendre autonomes les individus et les communautés, de briser le cycle de la pauvreté et de créer une égalité des chances pour les groupes marginalisés." + } + ] + ], + "org-quote": [ + { + "text": "Social Income a apporté des " + }, + { + "text": "changements significatifs ", + "color": "accent" + }, + { + "text": "à de nombreuses personnes et communautés parmi les plus vulnérables." + } + ], + "org-quote-author": "Edmond Margai", + "org-photo": "", + "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", + "org-youtube": "https://www.youtube.com/@reachoutsalone8395" + }, + "equal-rights-alliance": { + "org-slug": "equal-rights-alliance", + "org-short-name": "Equal Rights Alliance", + "org-long-name": "Equal Rights Alliance", + "org-foundation": "2019", + "org-image": "equal-rights-alliance.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [3, 10], + "partnership-start": "2022", + "recipients-total": "13", + "recipients-active": "13", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "Cette ONG fait progresser les droits humains par son travail de sensibilisation aux enjeux d’égalité, d’inclusion et de justice sociale dans les communautés.", + "org-description-paragraphs": [ + [ { - "text": "pour les personnes vulnérables. Nous espérons que le gouvernement l'adoptera comme mesure clé de protection sociale." + "text": "Equal Rights Alliance est une organisation à but non lucratif engagée dans la protection et la promotion des droits humains. Elle œuvre pour une société exempte de violence et de discrimination. Sa mission est de faire connaître l'égalité des droits, l'inclusion et la justice sociale. Centrée sur la promotion des droits humains en Sierra Leone, l'organisation défend les intérêts de groupes de population clés et promeut les normes internationales en matière de droits humains." } ], - "org-quote-author": "Arnold Gibril Kamara", - "org-photo": "", - "org-facebook": "https://www.facebook.com/groups/693921621002955/" - }, - { - "org-short-name": "United Polio Brothers and Sisters", - "org-long-name": "United Polio Brothers and Sisters", - "org-foundation": "1999", - "org-image": "united-polio.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2022", - "recipients-total": "10", - "recipients-active": "10", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "Cette ONG soutient les personnes handicapées et vulnérables en offrant logement, formation et ressources pour améliorer leur vie et préserver leur dignité.", - "org-description-paragraphs": [ - [ - { - "text": "United Polio Brothers and Sisters (UPBSA), fondée en 1999 par 12 personnes atteintes de la polio, milite en faveur du logement et des possibilités de formation pour les personnes en situation de handicap et de vulnérabilité. En 2001, UPBSA a créé un centre provisoire de formation technique et professionnelle à Freetown, avant de s'étendre en créant trois succursales dans des zones rurales." - } - ], - [ - { - "text": "La mission de l'UPBSA est de fournir un espace sûr et solidaire qui donne à ses membres les outils et les occasions de mener une vie digne." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income a permis aux plus vulnérables de " - }, - { - "text": "lancer de petites entreprises, ", - "color": "accent" - }, + "text": "De plus, elle intègre la question du handicap dans les initiatives de développement, soutient les politiques et les programmes relatifs au handicap et fait le lien entre la question du handicap et les questions plus générales de droits humains." + } + ] + ], + "org-quote": [ + { + "text": "Social Income est un outil essentiel de " + }, + { + "text": "lutte contre la pauvreté ", + "color": "accent" + }, + { + "text": "pour les personnes vulnérables. Nous espérons que le gouvernement l'adoptera comme mesure clé de protection sociale." + } + ], + "org-quote-author": "Arnold Gibril Kamara", + "org-photo": "", + "org-facebook": "https://www.facebook.com/groups/693921621002955/" + }, + "united-polio-brothers-and-sisters": { + "org-slug": "united-polio-brothers-and-sisters", + "org-short-name": "United Polio Brothers and Sisters", + "org-long-name": "United Polio Brothers and Sisters", + "org-foundation": "1999", + "org-image": "united-polio.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2022", + "recipients-total": "10", + "recipients-active": "10", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "Cette ONG soutient les personnes handicapées et vulnérables en offrant logement, formation et ressources pour améliorer leur vie et préserver leur dignité.", + "org-description-paragraphs": [ + [ { - "text": "générant des revenus réguliers grâce à une aide mensuelle fiable." + "text": "United Polio Brothers and Sisters (UPBSA), fondée en 1999 par 12 personnes atteintes de la polio, milite en faveur du logement et des possibilités de formation pour les personnes en situation de handicap et de vulnérabilité. En 2001, UPBSA a créé un centre provisoire de formation technique et professionnelle à Freetown, avant de s'étendre en créant trois succursales dans des zones rurales." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "" - }, - { - "org-short-name": "SLAES", - "org-long-name": "Sierra Leone Association of Ebola Survivors", - "org-foundation": "2015", - "org-image": "slaes.png", - "org-country": "SL", - "org-headquarter": "Kenema", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [4, 5], - "partnership-start": "2024", - "recipients-total": "20", - "recipients-active": "17", - "recipients-former": "2", - "recipients-suspended": "1", - "org-mission": "Cette ONG communautaire soutient les personnes qui ont survécu au virus Ebola, en particulier celles qui ont été touchées par l'épidémie dévastatrice de 2014.", - "org-description-paragraphs": [ - [ - { - "text": "La Sierra Leone Association of Ebola Survivors (SLAES) est une organisation qui s'engage à soutenir les personnes qui ont survécu au virus Ebola. SLAES offre une assistance complète, à savoir l'accès aux soins médicaux, un soutien psychologique et un engagement constant pour que les droits et les besoins des survivants soient reconnus et pris en compte." - } - ], - [ - { - "text": "Par son travail, SLAES veut aider les survivants à reconstruire leur vie et renforcer la résilience des communautés touchées." - } - ] - ], - "org-quote": [ + [ { - "text": "C'est plus qu'un soutien financier, " - }, + "text": "La mission de l'UPBSA est de fournir un espace sûr et solidaire qui donne à ses membres les outils et les occasions de mener une vie digne." + } + ] + ], + "org-quote": [ + { + "text": "Social Income a permis aux plus vulnérables de " + }, + { + "text": "lancer de petites entreprises, ", + "color": "accent" + }, + { + "text": "générant des revenus réguliers grâce à une aide mensuelle fiable." + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + }, + "sierra-leone-association-of-ebola-survivors": { + "org-slug": "sierra-leone-association-of-ebola-survivors", + "org-short-name": "SLAES", + "org-long-name": "Sierra Leone Association of Ebola Survivors", + "org-foundation": "2015", + "org-image": "slaes.png", + "org-country": "SL", + "org-headquarter": "Kenema", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [4, 5], + "partnership-start": "2024", + "recipients-total": "20", + "recipients-active": "17", + "recipients-former": "2", + "recipients-suspended": "1", + "org-mission": "Cette ONG communautaire soutient les personnes qui ont survécu au virus Ebola, en particulier celles qui ont été touchées par l'épidémie dévastatrice de 2014.", + "org-description-paragraphs": [ + [ { - "text": "c'est un pas vers la dignité et la résilience.", - "color": "accent" + "text": "La Sierra Leone Association of Ebola Survivors (SLAES) est une organisation qui s'engage à soutenir les personnes qui ont survécu au virus Ebola. SLAES offre une assistance complète, à savoir l'accès aux soins médicaux, un soutien psychologique et un engagement constant pour que les droits et les besoins des survivants soient reconnus et pris en compte." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "" - } - ] + [ + { + "text": "Par son travail, SLAES veut aider les survivants à reconstruire leur vie et renforcer la résilience des communautés touchées." + } + ] + ], + "org-quote": [ + { + "text": "C'est plus qu'un soutien financier, " + }, + { + "text": "c'est un pas vers la dignité et la résilience.", + "color": "accent" + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + } } diff --git a/shared/locales/it/website-partners.json b/shared/locales/it/website-partners.json index 7bdb3d88b..db9782688 100644 --- a/shared/locales/it/website-partners.json +++ b/shared/locales/it/website-partners.json @@ -28,279 +28,293 @@ "founded": "Fondato", "partner-since": "Partner dal", "headquarter": "Sede", - "mission": "Missione" + "mission": "Missione", + "fundraiser": "Fundraiser", + "permalink": "Permalink" }, "ngos": [ - { - "org-short-name": "Aurora Foundation", - "org-long-name": "Aurora Foundation", - "org-foundation": "2007", - "org-image": "aurora.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "International NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2020", - "recipients-total": "42", - "recipients-active": "20", - "recipients-former": "22", - "recipients-suspended": "0", - "org-mission": "L'ONG sostiene la creatività e aiuta le persone a migliorare la propria vita e le comunità attraverso progetti di sviluppo e culturali.", - "org-description-paragraphs": [ - [ - { - "text": "La Fondazione Aurora genera impatto attraverso progetti culturali e di sviluppo che " - }, - { - "text": "celebrano la creatività ", - "href": "https://www.aurorafoundation.is/en" - }, - { - "text": "e la resilienza delle comunità." - } - ], - [ - { - "text": "Fondata nel 2007 in Islanda, Aurora promuove l’artigianato locale e pratiche sostenibili in Sierra Leone con iniziative come Lettie Stuart Pottery e il negozio Sweet Salone, portando le arti tradizionali a un pubblico globale." - } - ], - [ - { - "text": "Aurora Impact sostiene inoltre progetti visionari per affrontare sfide globali, utilizzando l’imprenditorialità come motore del cambiamento." - } - ] - ], - "org-quote": [ + "aurora-foundation", + "jamil-&-nyanga-jaward-foundation", + "reachout-salone", + "equal-rights-alliance", + "united-polio-brothers-and-sisters", + "sierra-leone-association-of-ebola-survivors" + ], + "aurora-foundation": { + "org-slug": "aurora-foundation", + "org-short-name": "Aurora Foundation", + "org-long-name": "Aurora Foundation", + "org-foundation": "2007", + "org-image": "aurora.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "International NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2020", + "recipients-total": "42", + "recipients-active": "20", + "recipients-former": "22", + "recipients-suspended": "0", + "org-mission": "L'ONG sostiene la creatività e aiuta le persone a migliorare la propria vita e le comunità attraverso progetti di sviluppo e culturali.", + "org-description-paragraphs": [ + [ { - "text": "Grazie a Social Income, gli artigiani hanno la " + "text": "La Fondazione Aurora genera impatto attraverso progetti culturali e di sviluppo che " }, { - "text": "stabilità per concentrarsi sul loro mestiere,", - "color": "accent" + "text": "celebrano la creatività ", + "href": "https://www.aurorafoundation.is/en" }, { - "text": "creando mezzi di sostentamento più sostenibili." + "text": "e la resilienza delle comunità." } ], - "org-quote-author": "Regína Bjarnadóttir", - "org-photo": "", - "org-website": "https://www.aurorafoundation.is/en", - "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", - "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" - }, - { - "org-short-name": "JNJF", - "org-long-name": "Jamil & Nyanga Jaward Foundation", - "org-foundation": "2017", - "org-image": "jamil.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "35", - "recipients-active": "28", - "recipients-former": "7", - "recipients-suspended": "0", - "org-mission": "L'ONG fornisce a vedove e bambini bisognosi istruzione, supporto e opportunità per costruire un futuro migliore.", - "org-description-paragraphs": [ - [ - { - "text": "La Fondazione Jamil e Nyanga Jaward (JNJF), fondata nel 2017, sostiene vedove e bambini svantaggiati attraverso l’istruzione, la crescita personale e il supporto della comunità." - } - ], - [ - { - "text": "Con la visione di restituire speranza e ricostruire vite, la fondazione si propone di spezzare i cicli di povertà, permettendo a vedove e bambini di superare l'esclusione sociale e costruire un futuro più luminoso." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income offre una soluzione semplice con un " - }, + "text": "Fondata nel 2007 in Islanda, Aurora promuove l’artigianato locale e pratiche sostenibili in Sierra Leone con iniziative come Lettie Stuart Pottery e il negozio Sweet Salone, portando le arti tradizionali a un pubblico globale." + } + ], + [ { - "text": "grande impatto sui nostri beneficiari,", - "color": "accent" - }, + "text": "Aurora Impact sostiene inoltre progetti visionari per affrontare sfide globali, utilizzando l’imprenditorialità come motore del cambiamento." + } + ] + ], + "org-quote": [ + { + "text": "Grazie a Social Income, gli artigiani hanno la " + }, + { + "text": "stabilità per concentrarsi sul loro mestiere,", + "color": "accent" + }, + { + "text": "creando mezzi di sostentamento più sostenibili." + } + ], + "org-quote-author": "Regína Bjarnadóttir", + "org-photo": "", + "org-website": "https://www.aurorafoundation.is/en", + "org-instagram": "https://www.instagram.com/aurorafoundation_official/?hl=en", + "org-facebook": "https://www.facebook.com/aurorafoundationofficial/" + }, + "jamil-&-nyanga-jaward-foundation": { + "org-slug": "jamil-&-nyanga-jaward-foundation", + "org-short-name": "JNJF", + "org-long-name": "Jamil & Nyanga Jaward Foundation", + "org-foundation": "2017", + "org-image": "jamil.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "35", + "recipients-active": "28", + "recipients-former": "7", + "recipients-suspended": "0", + "org-mission": "L'ONG fornisce a vedove e bambini bisognosi istruzione, supporto e opportunità per costruire un futuro migliore.", + "org-description-paragraphs": [ + [ { - "text": "fornendo un sostegno finanziario che ha trasformato profondamente le loro vite." + "text": "La Fondazione Jamil e Nyanga Jaward (JNJF), fondata nel 2017, sostiene vedove e bambini svantaggiati attraverso l’istruzione, la crescita personale e il supporto della comunità." } ], - "org-quote-author": "Jamil Jaward", - "org-photo": "", - "org-website": "https://www.jnjf.org/", - "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", - "org-facebook": "https://www.facebook.com/JNJFoundation", - "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" - }, - { - "org-short-name": "Reachout Salone", - "org-long-name": "Reachout Salone", - "org-foundation": "2020", - "org-image": "reachout.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 5], - "partnership-start": "2021", - "recipients-total": "36", - "recipients-active": "12", - "recipients-former": "24", - "recipients-suspended": "0", - "org-mission": "L'ONG sostiene le comunità costiere, offrendo ai giovani il supporto e le opportunità necessari per spezzare il ciclo della povertà e costruire un futuro migliore.", - "org-description-paragraphs": [ - [ - { - "text": "Reachout Salone (ROSL) è un'organizzazione guidata dai giovani e registrata in Sierra Leone, focalizzata sulla sensibilizzazione e le iniziative caritative nelle comunità costiere. Fondata nel 2020, ROSL promuove lo sviluppo umano sostenibile e l’adattamento ai cambiamenti climatici. Con un’attenzione speciale ai giovani, in particolare donne e ragazze, ROSL collabora con enti governativi, ONG e organizzazioni umanitarie per sostenere mezzi di sussistenza sostenibili, garantendo dignità e sicurezza." - } - ], - [ - { - "text": "La sua missione è sostenere i più poveri e vulnerabili, offrendo loro vie per una vita migliore. La visione di ROSL è quella di dare potere a individui e comunità, spezzare il ciclo della povertà e creare pari opportunità per i gruppi svantaggiati." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income ha portato un " - }, - { - "text": "cambiamento significativo ", - "color": "accent" - }, + "text": "Con la visione di restituire speranza e ricostruire vite, la fondazione si propone di spezzare i cicli di povertà, permettendo a vedove e bambini di superare l'esclusione sociale e costruire un futuro più luminoso." + } + ] + ], + "org-quote": [ + { + "text": "Social Income offre una soluzione semplice con un " + }, + { + "text": "grande impatto sui nostri beneficiari,", + "color": "accent" + }, + { + "text": "fornendo un sostegno finanziario che ha trasformato profondamente le loro vite." + } + ], + "org-quote-author": "Jamil Jaward", + "org-photo": "", + "org-website": "https://www.jnjf.org/", + "org-instagram": "https://instagram.com/jnjaward?igshid=NGVhN2U2NjQ0Yg", + "org-facebook": "https://www.facebook.com/JNJFoundation", + "org-linkedin": "https://www.linkedin.com/company/the-jamil-nyanga-jaward-foundation/" + }, + "reachout-salone": { + "org-slug": "reachout-salone", + "org-short-name": "Reachout Salone", + "org-long-name": "Reachout Salone", + "org-foundation": "2020", + "org-image": "reachout.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 5], + "partnership-start": "2021", + "recipients-total": "36", + "recipients-active": "12", + "recipients-former": "24", + "recipients-suspended": "0", + "org-mission": "L'ONG sostiene le comunità costiere, offrendo ai giovani il supporto e le opportunità necessari per spezzare il ciclo della povertà e costruire un futuro migliore.", + "org-description-paragraphs": [ + [ { - "text": "a molte delle persone e comunità più vulnerabili." + "text": "Reachout Salone (ROSL) è un'organizzazione guidata dai giovani e registrata in Sierra Leone, focalizzata sulla sensibilizzazione e le iniziative caritative nelle comunità costiere. Fondata nel 2020, ROSL promuove lo sviluppo umano sostenibile e l’adattamento ai cambiamenti climatici. Con un’attenzione speciale ai giovani, in particolare donne e ragazze, ROSL collabora con enti governativi, ONG e organizzazioni umanitarie per sostenere mezzi di sussistenza sostenibili, garantendo dignità e sicurezza." } ], - "org-quote-author": "Edmond Margai", - "org-photo": "", - "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", - "org-youtube": "https://www.youtube.com/@reachoutsalone8395" - }, - { - "org-short-name": "Equal Rights Alliance", - "org-long-name": "Equal Rights Alliance", - "org-foundation": "2019", - "org-image": "equal-rights-alliance.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [3, 10], - "partnership-start": "2022", - "recipients-total": "13", - "recipients-active": "13", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "L'ONG promuove i diritti umani sensibilizzando ai diritti uguali, all'inclusione e alla giustizia sociale nelle comunità.", - "org-description-paragraphs": [ - [ - { - "text": "Equal Rights Alliance è un’organizzazione senza scopo di lucro impegnata a proteggere e promuovere i diritti umani, lavorando per una società libera da violenza e discriminazione. La sua missione è sensibilizzare sui diritti uguali, l'inclusione e la giustizia sociale. Focalizzata sull'avanzamento dei diritti umani in Sierra Leone, l'organizzazione sostiene gruppi chiave della popolazione e promuove gli standard internazionali sui diritti umani." - } - ], - [ - { - "text": "Inoltre, integra la disabilità nelle iniziative di sviluppo, supporta politiche e programmi per la disabilità, e colma il divario tra disabilità e questioni più ampie dei diritti umani." - } - ] - ], - "org-quote": [ - { - "text": "Social Income è uno strumento fondamentale " - }, + [ { - "text": "contro la povertà per le persone vulnerabili. ", - "color": "accent" - }, + "text": "La sua missione è sostenere i più poveri e vulnerabili, offrendo loro vie per una vita migliore. La visione di ROSL è quella di dare potere a individui e comunità, spezzare il ciclo della povertà e creare pari opportunità per i gruppi svantaggiati." + } + ] + ], + "org-quote": [ + { + "text": "Social Income ha portato un " + }, + { + "text": "cambiamento significativo ", + "color": "accent" + }, + { + "text": "a molte delle persone e comunità più vulnerabili." + } + ], + "org-quote-author": "Edmond Margai", + "org-photo": "", + "org-facebook": "https://www.facebook.com/profile.php?id=100070050743284&sk=about_details", + "org-youtube": "https://www.youtube.com/@reachoutsalone8395" + }, + "equal-rights-alliance": { + "org-slug": "equal-rights-alliance", + "org-short-name": "Equal Rights Alliance", + "org-long-name": "Equal Rights Alliance", + "org-foundation": "2019", + "org-image": "equal-rights-alliance.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [3, 10], + "partnership-start": "2022", + "recipients-total": "13", + "recipients-active": "13", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "L'ONG promuove i diritti umani sensibilizzando ai diritti uguali, all'inclusione e alla giustizia sociale nelle comunità.", + "org-description-paragraphs": [ + [ { - "text": "Speriamo che il governo lo adotti come misura chiave di protezione sociale." + "text": "Equal Rights Alliance è un’organizzazione senza scopo di lucro impegnata a proteggere e promuovere i diritti umani, lavorando per una società libera da violenza e discriminazione. La sua missione è sensibilizzare sui diritti uguali, l'inclusione e la giustizia sociale. Focalizzata sull'avanzamento dei diritti umani in Sierra Leone, l'organizzazione sostiene gruppi chiave della popolazione e promuove gli standard internazionali sui diritti umani." } ], - "org-quote-author": "Arnold Gibril Kamara", - "org-photo": "", - "org-facebook": "https://www.facebook.com/groups/693921621002955/" - }, - { - "org-short-name": "United Polio Brothers and Sisters", - "org-long-name": "United Polio Brothers and Sisters", - "org-foundation": "1999", - "org-image": "united-polio.png", - "org-country": "SL", - "org-headquarter": "Freetown", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [1, 8], - "partnership-start": "2022", - "recipients-total": "10", - "recipients-active": "10", - "recipients-former": "0", - "recipients-suspended": "0", - "org-mission": "L'ONG sostiene persone disabili e vulnerabili, offrendo alloggi, formazione e risorse per migliorare la loro vita e preservare la loro dignità.", - "org-description-paragraphs": [ - [ - { - "text": "United Polio Brothers and Sisters (UPBSA), fondata nel 1999 da 12 persone colpite dalla polio, sostiene il diritto alla casa e alle opportunità di formazione per persone disabili e vulnerabili. Nel 2001, UPBSA ha istituito un centro tecnico e professionale provvisorio a Freetown, espandendosi poi con tre altre sedi nelle aree rurali." - } - ], - [ - { - "text": "La missione di UPBSA è fornire uno spazio sicuro e di supporto che dia ai suoi membri gli strumenti e le opportunità per condurre una vita dignitosa." - } - ] - ], - "org-quote": [ + [ { - "text": "Social Income ha permesso ai più vulnerabili di " - }, - { - "text": "avviare piccole attività, ", - "color": "accent" - }, + "text": "Inoltre, integra la disabilità nelle iniziative di sviluppo, supporta politiche e programmi per la disabilità, e colma il divario tra disabilità e questioni più ampie dei diritti umani." + } + ] + ], + "org-quote": [ + { + "text": "Social Income è uno strumento fondamentale " + }, + { + "text": "contro la povertà per le persone vulnerabili. ", + "color": "accent" + }, + { + "text": "Speriamo che il governo lo adotti come misura chiave di protezione sociale." + } + ], + "org-quote-author": "Arnold Gibril Kamara", + "org-photo": "", + "org-facebook": "https://www.facebook.com/groups/693921621002955/" + }, + "united-polio-brothers-and-sisters": { + "org-slug": "united-polio-brothers-and-sisters", + "org-short-name": "United Polio Brothers and Sisters", + "org-long-name": "United Polio Brothers and Sisters", + "org-foundation": "1999", + "org-image": "united-polio.png", + "org-country": "SL", + "org-headquarter": "Freetown", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [1, 8], + "partnership-start": "2022", + "recipients-total": "10", + "recipients-active": "10", + "recipients-former": "0", + "recipients-suspended": "0", + "org-mission": "L'ONG sostiene persone disabili e vulnerabili, offrendo alloggi, formazione e risorse per migliorare la loro vita e preservare la loro dignità.", + "org-description-paragraphs": [ + [ { - "text": "generando un reddito stabile grazie al suo affidabile supporto mensile." + "text": "United Polio Brothers and Sisters (UPBSA), fondata nel 1999 da 12 persone colpite dalla polio, sostiene il diritto alla casa e alle opportunità di formazione per persone disabili e vulnerabili. Nel 2001, UPBSA ha istituito un centro tecnico e professionale provvisorio a Freetown, espandendosi poi con tre altre sedi nelle aree rurali." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "" - }, - { - "org-short-name": "SLAES", - "org-long-name": "Sierra Leone Association of Ebola Survivors", - "org-foundation": "2015", - "org-image": "slaes.png", - "org-country": "SL", - "org-headquarter": "Kenema", - "org-category": "Local NGO", - "org-focus-sdg-numbers": [4, 5], - "partnership-start": "2024", - "recipients-total": "20", - "recipients-active": "17", - "recipients-former": "2", - "recipients-suspended": "1", - "org-mission": "L'ONG comunitaria sostiene le persone sopravvissute al virus Ebola, con un focus su coloro colpiti dalla devastante epidemia del 2014 in Sierra Leone.", - "org-description-paragraphs": [ - [ - { - "text": "La Sierra Leone Association of Ebola Survivors (SLAES) è un’organizzazione impegnata a sostenere le persone che hanno superato il virus Ebola. SLAES offre un'assistenza completa, tra cui accesso alle cure mediche, supporto psicologico e un'azione continua per garantire che i diritti e i bisogni dei sopravvissuti siano riconosciuti e soddisfatti." - } - ], - [ - { - "text": "Attraverso il suo lavoro, SLAES mira ad aiutare i sopravvissuti a ricostruire le loro vite e a rafforzare la resilienza nelle comunità colpite." - } - ] - ], - "org-quote": [ + [ { - "text": "È più di un semplice supporto finanziario—è un passo " - }, + "text": "La missione di UPBSA è fornire uno spazio sicuro e di supporto che dia ai suoi membri gli strumenti e le opportunità per condurre una vita dignitosa." + } + ] + ], + "org-quote": [ + { + "text": "Social Income ha permesso ai più vulnerabili di " + }, + { + "text": "avviare piccole attività, ", + "color": "accent" + }, + { + "text": "generando un reddito stabile grazie al suo affidabile supporto mensile." + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + }, + "sierra-leone-association-of-ebola-survivors": { + "org-slug": "sierra-leone-association-of-ebola-survivors", + "org-short-name": "SLAES", + "org-long-name": "Sierra Leone Association of Ebola Survivors", + "org-foundation": "2015", + "org-image": "slaes.png", + "org-country": "SL", + "org-headquarter": "Kenema", + "org-category": "Local NGO", + "org-focus-sdg-numbers": [4, 5], + "partnership-start": "2024", + "recipients-total": "20", + "recipients-active": "17", + "recipients-former": "2", + "recipients-suspended": "1", + "org-mission": "L'ONG comunitaria sostiene le persone sopravvissute al virus Ebola, con un focus su coloro colpiti dalla devastante epidemia del 2014 in Sierra Leone.", + "org-description-paragraphs": [ + [ { - "text": "verso la dignità e la resilienza.", - "color": "accent" + "text": "La Sierra Leone Association of Ebola Survivors (SLAES) è un’organizzazione impegnata a sostenere le persone che hanno superato il virus Ebola. SLAES offre un'assistenza completa, tra cui accesso alle cure mediche, supporto psicologico e un'azione continua per garantire che i diritti e i bisogni dei sopravvissuti siano riconosciuti e soddisfatti." } ], - "org-quote-author": "Paul Osman Kabia", - "org-photo": "" - } - ] + [ + { + "text": "Attraverso il suo lavoro, SLAES mira ad aiutare i sopravvissuti a ricostruire le loro vite e a rafforzare la resilienza nelle comunità colpite." + } + ] + ], + "org-quote": [ + { + "text": "È più di un semplice supporto finanziario—è un passo " + }, + { + "text": "verso la dignità e la resilienza.", + "color": "accent" + } + ], + "org-quote-author": "Paul Osman Kabia", + "org-photo": "" + } } From 0412c62ebeb3577bc987d6ba947a3871e2ff75e7 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Thu, 5 Dec 2024 12:41:28 +0530 Subject: [PATCH 13/17] update translations for fundraisers --- shared/locales/de/website-partners.json | 11 ++++++++++- shared/locales/fr/website-partners.json | 11 ++++++++++- shared/locales/it/website-partners.json | 11 ++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/shared/locales/de/website-partners.json b/shared/locales/de/website-partners.json index 5bb6d46e8..b5655393a 100644 --- a/shared/locales/de/website-partners.json +++ b/shared/locales/de/website-partners.json @@ -29,7 +29,7 @@ "partner-since": "Partner seit", "headquarter": "Hauptsitz", "mission": "Mission", - "fundraiser": "Fundraiser", + "fundraiser": "Spendenaktion", "permalink": "Permalink" }, "ngos": [ @@ -310,6 +310,15 @@ } ] ], + "org-fundraiser-text": [ + { + "text": "SLAES sammelt aktuell Spenden: " + }, + { + "text": "Rebuilding Lives", + "href": "https://socialincome.org/campaign/MZmXEVHlDjOOFOMk82jW" + } + ], "org-quote": [ { "text": "Es ist mehr als nur finanzielle Unterstützung—es ist ein Schritt " diff --git a/shared/locales/fr/website-partners.json b/shared/locales/fr/website-partners.json index 2e68ad4ab..1dc3412f5 100644 --- a/shared/locales/fr/website-partners.json +++ b/shared/locales/fr/website-partners.json @@ -29,7 +29,7 @@ "partner-since": "Partenaire depuis", "headquarter": "Siège social", "mission": "Mission", - "fundraiser": "Fundraiser", + "fundraiser": "Collecte de fonds", "permalink": "Permalink" }, "ngos": [ @@ -305,6 +305,15 @@ } ] ], + "org-fundraiser-text": [ + { + "text": "SLAES lève actuellement des fonds: " + }, + { + "text": "Rebuilding Lives", + "href": "https://socialincome.org/campaign/MZmXEVHlDjOOFOMk82jW" + } + ], "org-quote": [ { "text": "C'est plus qu'un soutien financier, " diff --git a/shared/locales/it/website-partners.json b/shared/locales/it/website-partners.json index db9782688..100489db4 100644 --- a/shared/locales/it/website-partners.json +++ b/shared/locales/it/website-partners.json @@ -29,7 +29,7 @@ "partner-since": "Partner dal", "headquarter": "Sede", "mission": "Missione", - "fundraiser": "Fundraiser", + "fundraiser": "Raccolta fondi", "permalink": "Permalink" }, "ngos": [ @@ -305,6 +305,15 @@ } ] ], + "org-fundraiser-text": [ + { + "text": "SLAES sta attualmente raccogliendo fondi: " + }, + { + "text": "Rebuilding Lives", + "href": "https://socialincome.org/campaign/MZmXEVHlDjOOFOMk82jW" + } + ], "org-quote": [ { "text": "È più di un semplice supporto finanziario—è un passo " From c60ea998bf6370c4cf17d224274618a22ef850a8 Mon Sep 17 00:00:00 2001 From: Sandino Scheidegger Date: Thu, 5 Dec 2024 13:36:04 +0100 Subject: [PATCH 14/17] Fixed wrong author of quote --- shared/locales/de/website-partners.json | 2 +- shared/locales/en/website-partners.json | 2 +- shared/locales/fr/website-partners.json | 2 +- shared/locales/it/website-partners.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shared/locales/de/website-partners.json b/shared/locales/de/website-partners.json index f18ce275b..836509d90 100644 --- a/shared/locales/de/website-partners.json +++ b/shared/locales/de/website-partners.json @@ -304,7 +304,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } ] diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index 1d2fd0817..10e6be104 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -316,7 +316,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "", "org-permalink": "socialincome.org/partners/sierra-leone-association-of-ebola-survivors" } diff --git a/shared/locales/fr/website-partners.json b/shared/locales/fr/website-partners.json index 428dd25c4..9513c6d6d 100644 --- a/shared/locales/fr/website-partners.json +++ b/shared/locales/fr/website-partners.json @@ -299,7 +299,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } ] diff --git a/shared/locales/it/website-partners.json b/shared/locales/it/website-partners.json index 7bdb3d88b..a44bf5efc 100644 --- a/shared/locales/it/website-partners.json +++ b/shared/locales/it/website-partners.json @@ -299,7 +299,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } ] From 7d5dd64113593898e0219d1fd365ea32ea6feb92 Mon Sep 17 00:00:00 2001 From: Sandino Scheidegger Date: Thu, 5 Dec 2024 13:39:12 +0100 Subject: [PATCH 15/17] Fixed wrong author of quote --- shared/locales/de/website-partners.json | 2 +- shared/locales/en/website-partners.json | 2 +- shared/locales/fr/website-partners.json | 2 +- shared/locales/it/website-partners.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shared/locales/de/website-partners.json b/shared/locales/de/website-partners.json index b5655393a..b0f5c280b 100644 --- a/shared/locales/de/website-partners.json +++ b/shared/locales/de/website-partners.json @@ -328,7 +328,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } } diff --git a/shared/locales/en/website-partners.json b/shared/locales/en/website-partners.json index f96d26602..347550170 100644 --- a/shared/locales/en/website-partners.json +++ b/shared/locales/en/website-partners.json @@ -324,7 +324,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } } diff --git a/shared/locales/fr/website-partners.json b/shared/locales/fr/website-partners.json index 1dc3412f5..f0d76313d 100644 --- a/shared/locales/fr/website-partners.json +++ b/shared/locales/fr/website-partners.json @@ -323,7 +323,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } } diff --git a/shared/locales/it/website-partners.json b/shared/locales/it/website-partners.json index 100489db4..3d8e29039 100644 --- a/shared/locales/it/website-partners.json +++ b/shared/locales/it/website-partners.json @@ -323,7 +323,7 @@ "color": "accent" } ], - "org-quote-author": "Paul Osman Kabia", + "org-quote-author": "Mohamed Sankoh Yillah", "org-photo": "" } } From 59f743d9acacdabc3b59c068e755a77b34b5ba51 Mon Sep 17 00:00:00 2001 From: Pranav Chatur Date: Fri, 6 Dec 2024 16:55:38 +0530 Subject: [PATCH 16/17] display country and not org name in PartnerHome.tsx badge --- .../[region]/(website)/partners/(components)/PartnerHome.tsx | 4 ++-- .../[region]/(website)/partners/(types)/PartnerCards.ts | 1 + .../app/[lang]/[region]/(website)/partners/[slug]/page.tsx | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx index 8bdd5bc43..0a66f2b1b 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx @@ -15,7 +15,7 @@ const country_abbreviations_to_flag_map: Record = { function getFlag(abbreviation: string): ReactElement { return country_abbreviations_to_flag_map[abbreviation] || ; } -export function PartnerHome({ currentNgo, translations }: NgoHomeProps) { +export function PartnerHome({ currentNgo, currentNgoCountry, translations }: NgoHomeProps) { const image_base_path = '/assets/partners/'; const recipientsBadge: RecipientsBadgeType = { hoverCardOrgName: currentNgo!['org-long-name'], @@ -101,7 +101,7 @@ export function PartnerHome({ currentNgo, translations }: NgoHomeProps) { {countryBadge?.countryFlagComponent || } - {currentNgo!['org-long-name']} + {currentNgoCountry}
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts index 72578046c..47c8cac74 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts +++ b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts @@ -78,6 +78,7 @@ type NgoEntryJSON = { type NgoHomeProps = { currentNgo: NgoEntryJSON; + currentNgoCountry: string; translations: { partnerSince: string; badgeRecipient: string; diff --git a/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx b/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx index f91c96a59..559484ecd 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx @@ -45,6 +45,7 @@ export default async function Page({ params: { lang, slug } }: PartnerPageProps) redirect('/not-found'); return; } + const currentNgoCountry = translator.t(currentNgo!['org-country'] || 'SL'); - return ; + return ; } From c53b6704c5f5ef0113bcc1d25304d74878358bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=BCndig?= Date: Tue, 10 Dec 2024 19:24:06 +0100 Subject: [PATCH 17/17] small cleanups --- ui/src/components/dialog.tsx | 6 +++--- .../(website)/partners/(components)/PartnerHome.tsx | 7 +++++-- .../(website)/partners/(sections)/ngocard.tsx | 3 ++- .../(website)/partners/(sections)/ngolist.tsx | 6 ++++-- .../(website)/partners/(types)/PartnerCards.ts | 5 ++++- .../[region]/(website)/partners/[slug]/page.tsx | 13 ++++++++++--- .../transparency/evidence/section-card.tsx | 4 ++-- 7 files changed, 30 insertions(+), 14 deletions(-) diff --git a/ui/src/components/dialog.tsx b/ui/src/components/dialog.tsx index 948729c73..330808395 100644 --- a/ui/src/components/dialog.tsx +++ b/ui/src/components/dialog.tsx @@ -39,11 +39,11 @@ const DialogContent = React.forwardRef< )} {...props} > - - + {children} + + Close - {children} )); diff --git a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx index 0a66f2b1b..60eace2f8 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(components)/PartnerHome.tsx @@ -1,4 +1,5 @@ 'use client'; + import { FundraiserBadge, RecipientsBadge } from '@/app/[lang]/[region]/(website)/partners/(components)/PartnerBadges'; import { CountryBadgeType, RecipientsBadgeType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; import { NgoHomeProps, NgoHoverCardType } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerCards'; @@ -12,10 +13,12 @@ const country_abbreviations_to_flag_map: Record = { SL: , CH: , }; + function getFlag(abbreviation: string): ReactElement { return country_abbreviations_to_flag_map[abbreviation] || ; } -export function PartnerHome({ currentNgo, currentNgoCountry, translations }: NgoHomeProps) { + +export function PartnerHome({ currentNgo, currentNgoCountry, translations, lang, region }: NgoHomeProps) { const image_base_path = '/assets/partners/'; const recipientsBadge: RecipientsBadgeType = { hoverCardOrgName: currentNgo!['org-long-name'], @@ -239,7 +242,7 @@ export function PartnerHome({ currentNgo, currentNgoCountry, translations }: Ngo {translations.permalink}
- + {`socialincome.org/partners/${ngoHoverCard.orgSlug}`} diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx index 8de200879..b54cabc59 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngocard.tsx @@ -35,6 +35,7 @@ export default async function NgoCard({ sdgBadges, ngoHoverCard, lang, + region, }: NgoCardProps) { const translator = await Translator.getInstance({ language: lang, @@ -278,7 +279,7 @@ export default async function NgoCard({ {translator.t('ngo-generic.permalink')}
- + {`socialincome.org/partners/${ngoHoverCard.orgSlug}`} diff --git a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx index bbd879412..58d858dca 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/(sections)/ngolist.tsx @@ -23,7 +23,7 @@ function getFlag(abbreviation: string): ReactElement { return country_abbreviations_to_flag_map[abbreviation] || ; } -export async function NgoList({ lang }: DefaultParams) { +export async function NgoList({ lang, region }: DefaultParams) { const translator = await Translator.getInstance({ language: lang, namespaces: ['website-partners'], @@ -37,6 +37,7 @@ export async function NgoList({ lang }: DefaultParams) { ngoArray.push(ngo); }); const ngoCardPropsArray: NgoCardProps[] = []; + for (let i = 0; i < ngoArray.length; ++i) { const recipientsBadge: RecipientsBadgeType = { hoverCardOrgName: ngoArray[i]['org-long-name'], @@ -93,6 +94,7 @@ export async function NgoList({ lang }: DefaultParams) { sdgBadges: sdgBadges, ngoHoverCard: ngoHoverCard, lang: lang, + region: region, }; ngoCardPropsArray.push(ngoCardProps); } @@ -101,7 +103,7 @@ export async function NgoList({ lang }: DefaultParams) {
{ngoCardPropsArray.map((props, index) => ( - + ))}
diff --git a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts index 47c8cac74..7d9136e29 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts +++ b/website/src/app/[lang]/[region]/(website)/partners/(types)/PartnerCards.ts @@ -4,7 +4,7 @@ import { RecipientsBadgeType, SdgBadgeType, } from '@/app/[lang]/[region]/(website)/partners/(types)/PartnerBadges'; -import { WebsiteLanguage } from '@/i18n'; +import { WebsiteLanguage, WebsiteRegion } from '@/i18n'; type NgoHoverCardType = { orgImage: string; @@ -39,6 +39,7 @@ type NgoCardProps = { sdgBadges: SdgBadgeType[]; ngoHoverCard: NgoHoverCardType; lang: WebsiteLanguage; + region: WebsiteRegion; }; type NgoEntryJSON = { @@ -79,6 +80,8 @@ type NgoEntryJSON = { type NgoHomeProps = { currentNgo: NgoEntryJSON; currentNgoCountry: string; + lang: WebsiteLanguage; + region: WebsiteRegion; translations: { partnerSince: string; badgeRecipient: string; diff --git a/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx b/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx index 559484ecd..0ec813956 100644 --- a/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx +++ b/website/src/app/[lang]/[region]/(website)/partners/[slug]/page.tsx @@ -14,7 +14,7 @@ type PartnerPageProps = { } & DefaultParams; } & DefaultPageProps; -export default async function Page({ params: { lang, slug } }: PartnerPageProps) { +export default async function Page({ params: { lang, region, slug } }: PartnerPageProps) { const translator = await Translator.getInstance({ language: lang, namespaces: ['website-partners', 'website-common', 'countries'], @@ -43,9 +43,16 @@ export default async function Page({ params: { lang, slug } }: PartnerPageProps) const currentNgo: NgoEntryJSON | undefined = getNGOTranslation(translator, slug.replaceAll('%26', '&')); if (!currentNgo) { redirect('/not-found'); - return; } const currentNgoCountry = translator.t(currentNgo!['org-country'] || 'SL'); - return ; + return ( + + ); } diff --git a/website/src/app/[lang]/[region]/(website)/transparency/evidence/section-card.tsx b/website/src/app/[lang]/[region]/(website)/transparency/evidence/section-card.tsx index 9f74c08fc..18d5afc57 100644 --- a/website/src/app/[lang]/[region]/(website)/transparency/evidence/section-card.tsx +++ b/website/src/app/[lang]/[region]/(website)/transparency/evidence/section-card.tsx @@ -47,7 +47,7 @@ export function SectionCard({ translations: { card, takeAction } }: SectionCardP {card.paragraphs.map((paragraph, key) => ( -

+ {paragraph.map((fragment, key) => ( {fragment.href ? ( @@ -61,7 +61,7 @@ export function SectionCard({ translations: { card, takeAction } }: SectionCardP )} ))} -

+ ))}