temporarily remove english translation

the site would not build due to some weird issue I have yet to figure
out. temporarily removing all english translations fixes it however. I
am probably migrating the site away from gatsby anyway so a temp fix is
fine
This commit is contained in:
leander committed 2025-07-22 02:05:19 +02:00
1 parent 626d749611
commit 0a3894e14d
24 files changed
+1424 -1728

No files matched your search

+1 -27
View File
@@ -21,33 +21,7 @@ module.exports = {
path: `${__dirname}/src/images`,
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/src/locales`,
name: `locale`,
},
},
{
resolve: `gatsby-plugin-react-i18next`,
options: {
localeJsonSourceName: `locale`, // name given to `gatsby-source-filesystem` plugin.
languages: [`en`, `no`],
defaultLanguage: `no`,
siteUrl: `https://uiogaming.no`,
// if you are using trailingSlash gatsby config include it here, as well (the default is 'always')
trailingSlash: "always",
// you can pass any i18next options
i18nextOptions: {
interpolation: {
escapeValue: false, // not needed for react as it escapes by default
},
keySeparator: false,
nsSeparator: false,
},
pages: [],
},
},
// Removed locale and i18n plugins
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
-5
View File
@@ -11,21 +11,16 @@
"gatsby-plugin-image": "^3.14.0",
"gatsby-plugin-manifest": "^5.14.0",
"gatsby-plugin-react-helmet": "^6.14.0",
"gatsby-plugin-react-i18next": "^3.0.1",
"gatsby-plugin-sharp": "^5.14.0",
"gatsby-source-filesystem": "^5.14.0",
"gatsby-source-sanity": "^7.9.1",
"gatsby-transformer-sharp": "^5.14.0",
"i18next": "^23.16.4",
"i18next-browser-languagedetector": "^8.0.0",
"i18next-http-backend": "^2.6.2",
"path": "^0.12.7",
"path-browserify": "^1.0.1",
"prop-types": "^15.8.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-helmet": "^6.1.0",
"react-i18next": "^15.1.1",
"react-icons": "^5.3.0",
"react-pannellum": "^0.2.16"
},
+1 -4
View File
@@ -4,18 +4,15 @@ import * as styles from "./back.module.css"
import { graphql } from "gatsby"
import { FaArrowLeft } from "react-icons/fa"
import { useTranslation } from "gatsby-plugin-react-i18next"
const Back = () => {
const { t } = useTranslation()
return (
<button
className={`${styles.container} ${styles.button}`}
onClick={() => window.history.back()}
>
<FaArrowLeft />
<p>{t("back")}</p>
<p>Tilbake</p>
</button>
)
}
-42
View File
@@ -1,42 +0,0 @@
import * as React from "react"
import * as styles from "./languageSelector.module.css"
import { NO, GB } from "country-flag-icons/react/3x2"
import { useTranslation, useI18next } from "gatsby-plugin-react-i18next"
const LanguageSelector = () => {
const { languages, changeLanguage } = useI18next()
const { t, i18n } = useTranslation()
if (i18n.language === "no") {
return (
<a
className={styles.button}
href="#"
onClick={e => {
e.preventDefault()
changeLanguage("en")
}}
>
<GB className={styles.flag} title={t("altText.flag")} />
English
</a>
)
} else {
return (
<a
className={styles.button}
href="#"
onClick={e => {
e.preventDefault()
changeLanguage("no")
}}
>
<NO className={styles.flag} title={t("altText.flag")} />
Norsk
</a>
)
}
}
export default LanguageSelector
@@ -1,24 +0,0 @@
.button {
display: flex;
gap: 0.25rem;
position: fixed;
top: 0.5rem;
right: 0.5rem;
z-index: 0;
background: pink;
color: black;
border: 1px solid black;
font-size: 1.1rem;
border-radius: 0.5rem;
padding-inline: 0.5em;
}
.button:hover {
background: #ff7b7b;
color: white;
}
.flag {
width: 1.2rem;
}
+1 -5
View File
@@ -1,11 +1,7 @@
import * as React from "react"
import * as styles from "./memberButton.module.css"
import { useTranslation } from "gatsby-plugin-react-i18next"
const MemberButton = () => {
const { t } = useTranslation()
return (
<a
href="https://innmelding.uiogaming.no"
@@ -13,7 +9,7 @@ const MemberButton = () => {
rel="noreferrer"
className={styles.button}
>
{t("join")}
Bli medlem
</a>
)
}
+13 -19
View File
@@ -1,38 +1,32 @@
import * as React from "react"
import * as styles from "./otherButton.module.css"
import { useTranslation } from "gatsby-plugin-react-i18next"
import { useState } from 'react';
import { useState } from "react"
const OtherButton = () => {
const [isOpen, setIsOpen] = useState(false);
const toggleDropdown = () => setIsOpen(!isOpen);
const { t, i18n } = useTranslation();
const statutesUrl =
i18n.language === "en"
? "https://statutes.uiogaming.no"
: "https://vedtekter.uiogaming.no"
const [isOpen, setIsOpen] = useState(false)
const toggleDropdown = () => setIsOpen(!isOpen)
const links = [
{ url: statutesUrl, label: t("footer.statutes") },
{ url: "https://klage.uiogaming.no", label: t("footer.complaints") },
{ url: "https://github.com/UiO-Gaming/dokumenter", label: t("documents") }
{ url: "https://vedtekter.uiogaming.no", label: "Vedtekter" },
{ url: "https://klage.uiogaming.no", label: "Klage" },
{ url: "https://github.com/UiO-Gaming/dokumenter", label: "Dokumenter" },
]
return (
<div>
<button onClick={toggleDropdown} className={styles.button}>
{t("other")} <span className={isOpen ? styles.arrowUp : styles.arrowDown}></span>
Annet{" "}
<span className={isOpen ? styles.arrowUp : styles.arrowDown}></span>
</button>
{isOpen && (
<div className={styles.dropdown}>
{links.map((link, index) => (
<button
key={index}
onClick={() => window.open(link.url, '_blank')}
onClick={() => window.open(link.url, "_blank")}
className={styles.dropdownButton}
style={{ marginTop: index === 0 ? '8px' : '4px' }}
style={{ marginTop: index === 0 ? "8px" : "4px" }}
>
{link.label}
</button>
@@ -40,7 +34,7 @@ const OtherButton = () => {
</div>
)}
</div>
);
};
)
}
export default OtherButton;
export default OtherButton
+14 -10
View File
@@ -3,7 +3,6 @@ import * as styles from "./about.module.css"
import { graphql, useStaticQuery } from "gatsby"
import { GatsbyImage } from "gatsby-plugin-image"
import { useTranslation } from "gatsby-plugin-react-i18next"
import DiscordButton from "../items/discordButton"
import MemberButton from "../items/memberButton"
@@ -24,26 +23,31 @@ const About = () => {
}
`)
const { t } = useTranslation()
return (
<section>
<div className={styles.container}>
<div className="no-mobile">
<GatsbyImage
image={data.aboutImage.childImageSharp.gatsbyImageData}
alt={t("altText.about")}
alt="To medlemmer spiller sammen"
/>
<p className="photo-credit">
{t("photo")}: 장태민, Studentenes Fotoklubb
</p>
<p className="photo-credit">Foto: 장태민, Studentenes Fotoklubb</p>
</div>
<div>
<h2 className="left-section-header">{t("about.title")}</h2>
<h2 className="left-section-header">Hvem er vi?</h2>
<div>
<p>{t("about.text")}</p>
<p>
UiO Gaming er en forening med hovedfokus på å danne et
inkluderende fellesskap rundt videospill og e-sport. Hos oss er
det enkelt å skaffe seg venner, ettersom alle har felles
interesser. Vi arrangerer ukentlige spillkvelder og fysiske
sosiale arrangementer, som for eksempel brettspillkvelder og
sosiale sammenkomster. Vår hovedkanal er en aktiv Discord-server
hvor man kan møte nye folk med felles interesser og game med andre
studenter.
</p>
<div className={styles.joinSection}>
<h3>{t("about.interested")}</h3>
<h3>Interessert?</h3>
<div className={styles.buttons}>
<MemberButton />
<DiscordButton />
+5 -7
View File
@@ -3,10 +3,8 @@ import * as styles from "./boardMembers.module.css"
import { graphql, useStaticQuery } from "gatsby"
import { GatsbyImage } from "gatsby-plugin-image"
import { useTranslation } from "gatsby-plugin-react-i18next"
const BoardMembers = () => {
const { t, i18n } = useTranslation();
const data = useStaticQuery(graphql`
query {
allSanityAuthor(
@@ -40,7 +38,7 @@ const BoardMembers = () => {
return (
<section>
<h2>{t("boardMembers.title")}</h2>
<h2>Styret</h2>
<div className={styles.container}>
{data.allSanityAuthor.edges.map(({ node: member }) => (
<article key={member._id} className={styles.card}>
@@ -51,21 +49,21 @@ const BoardMembers = () => {
<GatsbyImage
image={member.image.asset.gatsbyImageData}
className="circular"
alt={`${t("altText.boardMember")}, ` + member.name}
alt={`Bilde av styremedlem, ` + member.name}
/>
</div>
<div className={styles.info}>
<h3>{member.name}</h3>
<p>{member.role[i18n.language]}</p>
<p>{member.role.no}</p>
</div>
</div>
<p>{member.bio[i18n.language]}</p>
<p>{member.bio.no}</p>
<div className={styles.footer}>
<p className="text-center">
{member.contactInfo ? (
member.contactInfo
) : (
<i>{t("boardMembers.noContact")}</i>
<i>Ingen kontaktinfo</i>
)}
</p>
</div>
+3 -7
View File
@@ -1,8 +1,6 @@
import * as React from "react"
import * as styles from "./contact.module.css"
import { useTranslation } from "gatsby-plugin-react-i18next"
import {
FaYoutube,
FaTwitch,
@@ -11,20 +9,18 @@ import {
FaDiscord,
FaAt,
FaInstagram,
FaTiktok
FaTiktok,
} from "react-icons/fa"
const Contact = () => {
const { t } = useTranslation()
return (
<section>
<h2 className="section-center-header">{t("contact.title")}</h2>
<h2 className="section-center-header">Finn oss</h2>
<div className={styles.container}>
<div className={styles.item}>
<FaAt />
<a href="mailto:styret@uiogaming.no" target="_blank" rel="noreferrer">
{t("contact.email")}
E-post
</a>
</div>
<div className={styles.item}>
+7 -20
View File
@@ -3,7 +3,7 @@ import * as styles from "./events.module.css"
import { graphql, useStaticQuery } from "gatsby"
import { GatsbyImage } from "gatsby-plugin-image"
import { Link, useTranslation } from "gatsby-plugin-react-i18next"
import { Link } from "gatsby"
import { FaMapMarkerAlt, FaCalendarAlt } from "react-icons/fa"
@@ -36,8 +36,6 @@ const Events = () => {
}
`)
const { t, i18n } = useTranslation()
const currentDate = new Date()
const filteredEvents = data.allSanityEvent.edges
.filter(({ node: event }) => {
@@ -59,7 +57,7 @@ const Events = () => {
<div className={styles.metadata}>
<FaCalendarAlt />
<p>
{new Date(event.date).toLocaleString(i18n.language, {
{new Date(event.date).toLocaleString("no", {
weekday: "long",
month: "long",
year: "numeric",
@@ -77,9 +75,7 @@ const Events = () => {
) : (
<>
{event.description.substring(0, 120)}...{" "}
<span className={styles.readMore}>
{t("events.readMore")}
</span>
<span className={styles.readMore}>Les mer</span>
</>
)}
</p>
@@ -87,31 +83,22 @@ const Events = () => {
</Link>
))
} else {
return (
<h3 className={styles.noEvents}>
{t("events.noEvents")}
<br />
<br />
(っ˘̩╭╮˘̩)っ
</h3>
)
return <h3 className={styles.noEvents}>Ingen kommende arrangementer</h3>
}
}
return (
<section className={styles.stretch}>
<div className={styles.container}>
<h2 className={styles.sectionHeader}>{t("events.title")}</h2>
<h2 className={styles.sectionHeader}>Hva skjer?</h2>
<div className={styles.events}>{mapEvents(filteredEvents)}</div>
<div className={"no-mobile " + styles.image}>
<GatsbyImage
image={data.eventImage.childImageSharp.gatsbyImageData}
alt={t("altText.events")}
alt="Medlemmer spiller brettspill"
/>
<div>
<p className="photo-credit">
{t("photo")}: 장태민, Studentenes Fotoklubb
</p>
<p className="photo-credit">Foto: 장태민, Studentenes Fotoklubb</p>
</div>
</div>
</div>
+7 -15
View File
@@ -3,7 +3,6 @@ import * as styles from "./footer.module.css"
import { graphql, useStaticQuery } from "gatsby"
import { GatsbyImage } from "gatsby-plugin-image"
import { useTranslation } from "gatsby-plugin-react-i18next"
const Footer = () => {
const data = useStaticQuery(graphql`
@@ -20,13 +19,6 @@ const Footer = () => {
}
`)
const { t, i18n } = useTranslation()
const statutesUrl =
i18n.language === "en"
? "https://statutes.uiogaming.no"
: "https://vedtekter.uiogaming.no"
return (
<footer>
<div className={styles.footer}>
@@ -39,18 +31,18 @@ const Footer = () => {
<div className={styles.links}>
<ul className="remove-bullets">
<li>
<a href={statutesUrl} rel="noreferrer">
{t("footer.statutes")}
<a href="https://vedtekter.uiogaming.no" rel="noreferrer">
Vedtekter
</a>
</li>
<li>
<a href="https://innmelding.uiogaming.no" rel="noreferrer">
{t("join")}
Bli medlem
</a>
</li>
<li>
<a href="https://klage.uiogaming.no" rel="noreferrer">
{t("footer.complaints")}
Klage
</a>
</li>
<li>
@@ -58,19 +50,19 @@ const Footer = () => {
href="https://github.com/UiO-Gaming/uiogaming.no/"
rel="noreferrer"
>
{t("footer.sourcecode")}
Kildekode
</a>
</li>
<li>
<a href="https://admin.uiogaming.no" rel="noreferrer">
{t("footer.admin")}
Adminområdet
</a>
</li>
</ul>
</div>
<div className={styles.orgInfo}>
<p>{t("footer.orgnum")}: 925 719 153</p>
<p>Org.Nr.: 925 719 153</p>
<address>Slemdalsveien 15, 0369 Oslo</address>
</div>
</div>
+4 -5
View File
@@ -3,7 +3,6 @@ import * as styles from "./header.module.css"
import { graphql, useStaticQuery } from "gatsby"
import { GatsbyImage } from "gatsby-plugin-image"
import { useTranslation } from "gatsby-plugin-react-i18next"
const Header = () => {
const data = useStaticQuery(graphql`
@@ -20,16 +19,16 @@ const Header = () => {
}
`)
const { t } = useTranslation()
return (
<header id="hjem" className={styles.container}>
<GatsbyImage
image={data.placeholder.childImageSharp.gatsbyImageData}
alt="UiO Gaming logo"
/>
<p>{t("header.text")}</p>
<p>
En hobbyforening som ønsker å skape et sosialt miljø rundt gaming og
e-sport på UiO
</p>
</header>
)
}
+11 -7
View File
@@ -2,27 +2,31 @@ import * as React from "react"
import * as styles from "./office.module.css"
import ReactPannellum from "react-pannellum"
import { useTranslation } from "gatsby-plugin-react-i18next"
const config = {
autoLoad: true,
}
const Office = () => {
const { t } = useTranslation()
return (
<section>
<h2>{t("office.title")}</h2>
<h2>Kontoret</h2>
<div className={styles.container}>
<p>{t("office.text")}</p>
<p>{t("office.tip")}</p>
<p>
Vi har et foreningskontor på Chateau Neuf der man kan bruke utstyret
vårt og henge med andre medlemmer! Vi har blant annet alle de nyeste
konsollene, 6 gaming-PCer samt et bredt utvalg av brettspill.
</p>
<p>
Tips: Du kan kikke rundt i kontoret ved å klikke og dra på bildet
nedenfor 👀
</p>
<ReactPannellum
id="1"
sceneId="office"
config={config}
imageSource="/3D_office_2024_11_03.jpg"
style={{ width: "100%", aspectRatio: "1 / 1", background: "#000000" }} // yes, apparantly applying a css class to the component doesn't work
style={{ width: "100%", aspectRatio: "1 / 1", background: "#000000" }}
/>
</div>
</section>
+3 -6
View File
@@ -3,7 +3,6 @@ import * as React from "react"
import PropTypes from "prop-types"
import { Helmet } from "react-helmet"
import { useStaticQuery, graphql } from "gatsby"
import { useTranslation } from "gatsby-plugin-react-i18next"
function Seo({ description, lang, meta, imageURL, title, author }) {
const { site } = useStaticQuery(graphql`
@@ -19,11 +18,8 @@ function Seo({ description, lang, meta, imageURL, title, author }) {
}
`)
const { t } = useTranslation()
const metaAuthor = author || site.siteMetadata.author
const metaDescription =
description || t("header.text", site.siteMetadata.description)
const metaDescription = description || site.siteMetadata.description
const defaultTitle = site.siteMetadata?.title
const jsonLd = {
@@ -39,7 +35,8 @@ function Seo({ description, lang, meta, imageURL, title, author }) {
"https://github.com/UiO-Gaming",
],
name: site.siteMetadata.title,
description: t("longDescription"),
description:
"UiO Gaming har som formål å fremme gaming, e-sport, brettspill og andre spillrelaterte interesser/kulturer ved UiO. I tillegg ønsker vi å skape et sosialt miljø som legger til rette for all aktivitet rundt spill. Foreningen har som mål å arrangere spillkvelder, turneringer, LAN og andre spillrelaterte aktiviteter åpne for alle som er interesserte.",
email: "styret@uiogaming.no",
address: {
"@type": "PostalAddress",
-5
View File
@@ -1,5 +0,0 @@
{
"title": "404: Page not found",
"text": "Our journey ended here. Please don't leave us",
"back": "Back to safe grounds"
}
-6
View File
@@ -1,6 +0,0 @@
{
"altText.about": "2 members playing games together",
"altText.events": "Members playing board games",
"altText.boardMember": "Picture of board member",
"altText.flag": "Flag of Norway"
}
-6
View File
@@ -1,6 +0,0 @@
{
"back": "Back",
"join": "Become a member",
"other": "Other",
"photo": "Photo"
}
-22
View File
@@ -1,22 +0,0 @@
{
"header.text": "A student organisation that aims to create an inclusive environment around gaming and e-sports for the students at UiO",
"about.title": "Who are we?",
"about.text": "UiO Gaming is a student organisation with a primary focus on creating an inclusive environment around gaming and e-sports. We wish to establish a community where it’s easy to make new friends and cultivate your gaming interests. Each week we host both casual and more intense gamenights, as well as physical events such as board game nights and other social gatherings. Our main channel is a Discord server where you can meet new people with common interests and play games with other students.",
"about.interested": "Interested?",
"events.title": "Upcoming events",
"events.readMore": "Read more",
"events.noEvents": "No upcoming events",
"office.title": "The office",
"office.text": "We have an office at Chateau Neuf where you can use our gear and hang out with other members! We've got all the latest and greatest consoles, 6 high-end PCs as well as a plethora of board games.",
"office.tip": "Tip: You can look around the office by clicking and dragging the image below 👀",
"boardMembers.title": "The Board",
"boardMembers.noContact": "No contact info",
"contact.title": "Contact us",
"contact.email": "E-mail",
"footer.statutes": "Statutes",
"footer.complaints": "File complaint",
"footer.sourcecode": "Source code",
"footer.admin": "Admin page",
"footer.orgnum": "Org. no",
"documents": "Documents"
}
-5
View File
@@ -1,5 +0,0 @@
{
"longDescription": "UiO Gaming’s purpose is to promote gaming, e-sports, board games and other gaming-related interests/cultures at UiO. In addition, we wish to create a social environment that facilitates all forms of activity around games. The association aims to organize game nights, tournaments, LAN and other gaming-related activities open to anyone who is interested.",
"location": "Location",
"time": "Time"
}
+5 -23
View File
@@ -2,27 +2,25 @@ import * as React from "react"
import * as styles from "./404.module.css"
import { graphql } from "gatsby"
import { Link, useTranslation } from "gatsby-plugin-react-i18next"
import { Link } from "gatsby"
import Layout from "../components/layout"
import Seo from "../components/seo"
const NotFoundPage = () => {
const { t, i18n } = useTranslation()
return (
<Layout>
<Seo title="404: Not found" description="Uh oh :(" lang={i18n.language} />
<Seo title="404: Ikke funnet" description="Uh oh :(" lang="no" />
<div className={styles.container}>
<h1 className={styles.centeredText}>{t("title")}</h1>
<h1 className={styles.centeredText}>404: Siden ble ikke funnet</h1>
<p className={styles.centeredText}>
{t("text")}{" "}
Reisen vår endte her. Vennligst ikke forlat oss
<span role="img" aria-label="eyes">
👀
</span>
</p>
<Link to="/" className={`${styles.centeredText} ${styles.homeLink}`}>
{t("back")}
Tilbake til trygg grunn
</Link>
</div>
</Layout>
@@ -30,19 +28,3 @@ const NotFoundPage = () => {
}
export default NotFoundPage
export const query = graphql`
query ($language: String!) {
locales: allLocale(
filter: { ns: { in: ["404", "seo"] }, language: { eq: $language } }
) {
edges {
node {
ns
data
language
}
}
}
}
`
+6 -19
View File
@@ -2,14 +2,14 @@ import * as React from "react"
import * as styles from "./eventPost.module.css"
import { graphql } from "gatsby"
import { useTranslation } from "gatsby-plugin-react-i18next"
// Removed: import { useTranslation } from "gatsby-plugin-react-i18next"
import Seo from "../components/seo"
import Back from "../components/items/back"
import { FaMapMarkerAlt, FaCalendarAlt } from "react-icons/fa"
export const query = graphql`
query ($id: String, $language: String!) {
query ($id: String) {
sanityEvent(_id: { eq: $id }) {
title
location
@@ -19,24 +19,11 @@ export const query = graphql`
}
description
}
locales: allLocale(
filter: { ns: { in: ["common", "seo"] }, language: { eq: $language } }
) {
edges {
node {
ns
data
language
}
}
}
}
`
const Event = ({ data }) => {
const { t, i18n } = useTranslation()
const time = new Date(data.sanityEvent.date).toLocaleString(i18n.language, {
const time = new Date(data.sanityEvent.date).toLocaleString("no", {
weekday: "long",
month: "long",
year: "numeric",
@@ -50,8 +37,8 @@ const Event = ({ data }) => {
<>
<Seo
title={data.sanityEvent.title}
description={`${t("time")}: ${time}\n${t("location")}: ${data.sanityEvent.location}\n\n${data.sanityEvent.description}`}
lang={i18n.language}
description={`Tid: ${time}\nSted: ${data.sanityEvent.location}\n\n${data.sanityEvent.description}`}
lang="no"
/>
<div className={styles.container}>
<Back />
@@ -64,7 +51,7 @@ const Event = ({ data }) => {
<div className={styles.metadata}>
<FaCalendarAlt />
<p>
{new Date(data.sanityEvent.date).toLocaleString(i18n.language, {
{new Date(data.sanityEvent.date).toLocaleString("no", {
weekday: "long",
month: "long",
year: "numeric",
+1 -24
View File
@@ -1,11 +1,9 @@
import * as React from "react"
import { graphql } from "gatsby"
import { useTranslation } from "gatsby-plugin-react-i18next"
import "../index.css"
import Layout from "../components/layout"
import Seo from "../components/seo"
import LanguageSelector from "../components/items/languageSelector"
import Header from "../components/sections/header"
import About from "../components/sections/about"
@@ -16,11 +14,10 @@ import Contact from "../components/sections/contact"
import Footer from "../components/sections/footer"
const IndexPage = () => {
const { t, i18n } = useTranslation()
return (
<>
<Layout>
<Seo lang={i18n.language} />
<Seo lang="no" />
<Header />
<About />
<Events />
@@ -29,28 +26,8 @@ const IndexPage = () => {
<Contact />
<Footer />
</Layout>
<LanguageSelector />
</>
)
}
export default IndexPage
export const query = graphql`
query ($language: String!) {
locales: allLocale(
filter: {
ns: { in: ["common", "index", "altText", "seo"] }
language: { eq: $language }
}
) {
edges {
node {
ns
data
language
}
}
}
}
`
+1342 -1415
View File
File diff suppressed because it is too large. Load diff