diff --git a/api/services/appstore/[query].ts b/api/services/appstore/[query].ts index 643315b..2742ecf 100644 --- a/api/services/appstore/[query].ts +++ b/api/services/appstore/[query].ts @@ -28,7 +28,7 @@ export default async function handler( const term = encodeURIComponent(query); const countryCode = country || 'us'; - const limit = 10; + const limit = 5; try { const response = await fetch( diff --git a/api/services/chrome-web-store/[query].ts b/api/services/chrome-web-store/[query].ts index b1675e8..8fd37e6 100644 --- a/api/services/chrome-web-store/[query].ts +++ b/api/services/chrome-web-store/[query].ts @@ -27,7 +27,7 @@ export default async function handler( description: item[6], url: item[37], })); - send(res, { result: items.slice(0, 10) }); + send(res, { result: items.slice(0, 5) }); } catch (err: any) { sendError(res, err); } diff --git a/api/services/firefox-addons/[query].ts b/api/services/firefox-addons/[query].ts index e4962e2..d22e270 100644 --- a/api/services/firefox-addons/[query].ts +++ b/api/services/firefox-addons/[query].ts @@ -30,7 +30,7 @@ export default async function handler( author: item.authors[0].name, }; }); - send(res, { result: items.slice(0, 10) }); + send(res, { result: items.slice(0, 5) }); } catch (err: any) { sendError(res, err); } diff --git a/api/services/nta/[query].ts b/api/services/nta/[query].ts index 104c074..6995eeb 100644 --- a/api/services/nta/[query].ts +++ b/api/services/nta/[query].ts @@ -90,7 +90,7 @@ export default async function handler( phoneticName: entry.phoneticName, englishName: entry.englishName, })) - .slice(0, 10) || [], + .slice(0, 5) || [], }); } catch (err: any) { sendError(res, err); diff --git a/api/services/playstore/[query].ts b/api/services/playstore/[query].ts index a37cf51..2602584 100644 --- a/api/services/playstore/[query].ts +++ b/api/services/playstore/[query].ts @@ -33,7 +33,7 @@ export default async function handler( author: entry[4][0][0][0], url: 'https://play.google.com' + entry[9][4][2], })); - send(res, { result: apps.slice(0, 10) }); + send(res, { result: apps.slice(0, 5) }); } catch (err: any) { sendError(res, err); } diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 4e3d8cf..4582377 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -19,7 +19,7 @@ "archlinux": "Arch Linux", "ubuntu": "Ubuntu", "debian": "Debian", - "domains": "Domains", + "domains": "Domain", "firebase": "Firebase", "github": "GitHub Organization", "githubSearch": "GitHub Repository", @@ -34,7 +34,7 @@ "netlify": "Netlify", "now": "Vercel", "npm": "npm", - "nta": "Company (JP)", + "nta": "Company (Japan)", "ocaml": "OCaml", "playStore": "Google Play Store", "pypi": "PyPI", @@ -62,5 +62,12 @@ "low": "Common", "moderate": "Rare" }, - "join-us": "Send <1>a pull request and become a contributor!" + "join-us": "Send <1>a pull request and become a contributor!", + "section": { + "starter": "Starter", + "social": "Social Network", + "package": "Package", + "web": "Web Platform", + "app": "App & Extension" + } } diff --git a/public/locales/ja/translation.json b/public/locales/ja/translation.json index 3cffa10..14a182b 100644 --- a/public/locales/ja/translation.json +++ b/public/locales/ja/translation.json @@ -30,7 +30,7 @@ "netlify": "Netlify", "now": "Vercel", "npm": "npm", - "nta": "法人", + "nta": "法人 (日本)", "ocaml": "OCaml", "pypi": "PyPI", "rubygems": "RubyGems", @@ -51,5 +51,12 @@ "low": "普通", "moderate": "そこそこユニーク" }, - "join-us": "<1>プルリクエストを送ってコントリビューターになりましょう!" + "join-us": "<1>プルリクエストを送ってコントリビューターになりましょう!", + "section": { + "starter": "基本", + "social": "SNS", + "package": "パッケージ", + "web": "Web", + "app": "アプリとエクステンション" + } } diff --git a/src/components/cards/core.tsx b/src/components/cards/core.tsx index abe045d..66867df 100644 --- a/src/components/cards/core.tsx +++ b/src/components/cards/core.tsx @@ -301,7 +301,7 @@ const ErrorHandler: React.FC = ({ children }) => ( ); const CardContainer = styled.div` - padding: 40px; + padding: 30px 50px; font-size: 1rem; line-height: 1rem; diff --git a/src/components/cards/index.tsx b/src/components/cards/index.tsx index f4030a2..f56c783 100644 --- a/src/components/cards/index.tsx +++ b/src/components/cards/index.tsx @@ -9,21 +9,22 @@ import CratesioCard from './providers/Cratesio'; import DomainCard from './providers/Domains'; import FirebaseCard from './providers/Firebase'; import FirefoxAddonsCard from './providers/FirefoxAddons'; +import FlyIoCard from './providers/FlyIo'; import GithubCard from './providers/GitHubOrganization'; import GithubSearchCard from './providers/GitHubSearch'; import GitLabCard from './providers/GitLab'; import HerokuCard from './providers/Heroku'; import HexPmCard from './providers/HexPm'; import HomebrewCard from './providers/Homebrew'; -// import InstagramCard from './providers/Instagram'; import JsOrgCard from './providers/JsOrg'; -import ModLandCard from './providers/ModLand'; import LinuxCard from './providers/Linux'; +import ModLandCard from './providers/ModLand'; import NetlifyCard from './providers/Netlify'; import NpmCard from './providers/Npm'; import NtaCard from './providers/Nta'; import OcamlCard from './providers/Ocaml'; import PlayStoreCard from './providers/PlayStore'; +import ProductHuntCard from './providers/ProductHunt'; import PypiCard from './providers/PyPI'; import RubyGemsCard from './providers/RubyGems'; import S3Card from './providers/S3'; @@ -32,65 +33,105 @@ import SubredditCard from './providers/Subreddit'; import TwitterCard from './providers/Twitter'; import VercelCard from './providers/Vercel'; import YouTubeCard from './providers/YouTube'; -import FlyIoCard from './providers/FlyIo'; -import ProductHuntCard from './providers/ProductHunt'; +// import InstagramCard from './providers/Instagram'; const Index: React.FC<{ query: string }> = ({ query }) => { - const { - i18n: { language }, - } = useTranslation(); + const { t } = useTranslation(); return ( <> - - - - - - - - - - - - - - - - - - - - - - - {/* */} - - - - - - - - - - - - {language === 'ja' ? : null} - +
+ {/* {t('section.starter')} */} + + + + + + + + + +
+
+ {t('section.social')} + + + + + {/* */} + +
+
+ {t('section.package')} + + + + + + + + + + +
+
+ {t('section.web')} + + + + + + + + + + + +
+
+ {t('section.app')} + + + + + + +
); }; export default Index; +const Section = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + margin: 0 0 40px; +`; + +const Title = styled.h1` + margin: 20px 0 10px; + text-align: center; + font-size: 3rem; + + ${mobile} { + margin: 0; + text-align: left; + font-size: 2rem; + padding: 0 20px; + } +`; + const Cards = styled.div` display: flex; flex-direction: row; justify-content: center; flex-wrap: wrap; + margin-top: 20px; ${mobile} { flex-direction: column; + margin-top: 40px; } `; diff --git a/src/components/cards/providers/Cloudflare.tsx b/src/components/cards/providers/Cloudflare.tsx index d5046c1..e8a4615 100644 --- a/src/components/cards/providers/Cloudflare.tsx +++ b/src/components/cards/providers/Cloudflare.tsx @@ -13,7 +13,7 @@ const CloudflareCard: React.FC<{ query: string }> = ({ query }) => { }); const lowerCase = normalizedQuery.toLowerCase(); - const names = [normalizedQuery]; + const names = [lowerCase]; const moreNames = [ `${lowerCase}-web`, `${lowerCase}-webapp`, @@ -26,7 +26,7 @@ const CloudflareCard: React.FC<{ query: string }> = ({ query }) => { {(name) => ( } diff --git a/src/components/cards/providers/GitHubSearch.tsx b/src/components/cards/providers/GitHubSearch.tsx index 7ef2d7a..1ed7d29 100644 --- a/src/components/cards/providers/GitHubSearch.tsx +++ b/src/components/cards/providers/GitHubSearch.tsx @@ -8,7 +8,7 @@ import { Card, Result } from '../core'; const Search: React.FC<{ query: string }> = ({ query }) => { const { t } = useTranslation(); const searchQuery = `${query} in:name`; - const limit = 10; + const limit = 5; const response = useFetch( `https://api.github.com/search/repositories?q=${encodeURIComponent( searchQuery diff --git a/src/components/cards/providers/GitLab.tsx b/src/components/cards/providers/GitLab.tsx index 84f6a16..1314b76 100644 --- a/src/components/cards/providers/GitLab.tsx +++ b/src/components/cards/providers/GitLab.tsx @@ -12,7 +12,13 @@ const GitLabCard: React.FC<{ query: string }> = ({ query }) => { }); const lowerCase = normalizedQuery.toLowerCase(); - const names = [lowerCase]; + const names = [ + normalizedQuery, + `${lowerCase}-dev`, + `${lowerCase}-org`, + `${lowerCase}-team`, + `${lowerCase}hq`, + ]; return ( diff --git a/src/components/cards/providers/ProductHunt.tsx b/src/components/cards/providers/ProductHunt.tsx index bd34f6d..9afd9f7 100644 --- a/src/components/cards/providers/ProductHunt.tsx +++ b/src/components/cards/providers/ProductHunt.tsx @@ -24,7 +24,7 @@ const Search: React.FC<{ query: string }> = ({ query }) => { <> {hits.length > 0 ? ( hits - .slice(0, 10) + .slice(0, 5) .map((hit) => ( = ({ query }) => { const names = [ normalizedQuery, + `${lowerCase}hq`, `${capitalCase}App`, `${lowerCase}_team`, - `${capitalCase}HQ`, - `hey${lowerCase}`, + `${lowerCase}_support`, ]; const moreNames = [ - `${lowerCase}_support`, + `hey${lowerCase}`, `${lowerCase}_org`, `${lowerCase}_app`, `${capitalCase}JS`, diff --git a/src/util/i18n.ts b/src/util/i18n.ts index 97aa63c..fa894f6 100644 --- a/src/util/i18n.ts +++ b/src/util/i18n.ts @@ -5,7 +5,7 @@ import XHR from 'i18next-xhr-backend'; import LanguageDetector from 'i18next-browser-languagedetector'; import { initReactI18next } from 'react-i18next'; -const TRANSLATION_VERSION = '18'; +const TRANSLATION_VERSION = '19'; i18n .use(Backend)