* Add i18n framework with next-intl for 19 languages
Set up complete internationalization infrastructure:
- Install next-intl v4 with App Router support
- Create i18n config (routing, request, navigation)
- Add middleware for automatic locale detection from Accept-Language
- Restructure all routes under app/[locale]/
- Extract UI strings to messages/en.json
- Update all components to use useTranslations()
- Add language switcher dropdown in footer
- Support RTL for Arabic and Khmer
- Update sitemap with locale alternates
- Add generateStaticParams for all 19 locales
Languages: en, ja, zh-CN, zh-TW, ko, de, es, fr, it, da, pl, ru, bs, ar, no, pt-BR, th, tr, km
Locale detection: auto-detect from browser Accept-Language header,
with cookie persistence and locale prefix only for non-default (en).
* Add translations for de, fr, it, ja, zh-CN, zh-TW
* Add translations for ar, bs, da, es, km, no, pl, pt-BR, ru, th, tr
* Convert docs and legal pages to use useTranslations()
* Add i18n to keyboard shortcuts component
* Add i18n to wall-of-love, add missing blog posts to sitemap
* Add keyboard shortcuts and wallOfLove translations to all locales
* Update bun lockfile for next-intl dependency
* Fix t.rich() configPath: pass ReactNode not function for {var} interpolation
* Fix configPath: use rich text tag instead of plain interpolation for ReactNode
* Fix t.rich() interpolation: use rich text tags for all ReactNode placeholders
Changed {legacy}, {openShortcut}, {jumpShortcut} from plain variable
interpolation to <tag>content</tag> format so t.rich() gets proper
functions instead of values.
* Escape ICU curly braces in socketCallout rich text across all locales
* Fix i18n issues: Khmer RTL, zh-CN quality, locale-aware testimonials, hardcoded strings
- Fix Khmer (km) incorrectly marked as RTL (it's LTR, only Arabic is RTL)
- Fix zh-CN/zh-TW taglinePrefix to mention terminals and open source
- Add locale-aware testimonial translations: show original text, translate
for non-matching locales, skip translation when locale matches original
- Translate hardcoded English table content in notifications page
- Add testimonial translations to all 19 locale files
- Remove unused setRequestLocale import and params from home page
* Address PR review comments: metadata localization, blog fixes, legal pages, accessibility
- Convert hardcoded metadata to generateMetadata with getTranslations on all docs, blog, community, and wall-of-love pages
- Fix blog canonical/OG URLs to be locale-aware
- Fix introducing-cmux .split(": ") by using separate label/desc translation keys
- Revert legal page titles to English (legal content stays English-only)
- Add focus-visible ring to language switcher for keyboard accessibility
- Preserve query string and hash when switching locale
- Convert site-footer to server component (remove unnecessary "use client")
- Remove .toLowerCase() on translated text in community page
- Add /docs/browser-automation and /wall-of-love to sitemap
- Fix keyboard-shortcuts jump link visibility with trimmed query
- Deduplicate blogSlugs by importing from blog-posts.ts
- Add typingCodingAgents/typingMultitasking translation keys to all locales
- Fix Spanish accent/tilde issues in es.json testimonials
- Fix nested <a> tag in homepage keyboard shortcuts feature
- Remove unused setRequestLocale import from homepage
* Convert remaining layout/index metadata to generateMetadata
- Root layout: locale-aware title, description, OG, and Twitter card metadata
- Docs layout: translated title template
- Blog layout: translated title template
- Blog index: locale-aware metadata
* Add translated metadata keys to all locales, fix docs redirect
- Add meta.title/description/ogDescription to all 18 non-English locales
- Add docs.layoutTitle, blog.layoutTitle/metaTitle/metaDescription to all locales
- Add blog post metadata (zenOfCmux, cmdShiftU, showHnLaunch, introducingCmux) to all locales
- Add community.metaTitle/metaDescription to all locales
- Fix docs index redirect to preserve locale prefix
* Add translated docs page metaTitle keys to all locales
206 lines
7.3 KiB
TypeScript
206 lines
7.3 KiB
TypeScript
import type { Metadata } from "next";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "EULA — cmux",
|
|
description: "End-User License Agreement for cmux",
|
|
};
|
|
|
|
export default function EulaPage() {
|
|
return (
|
|
<>
|
|
<h1>EULA</h1>
|
|
<p>Last updated: December 2, 2025</p>
|
|
|
|
<p>
|
|
Please read this End-User License Agreement carefully before
|
|
downloading or using cmux.
|
|
</p>
|
|
|
|
<h2>Interpretation and Definitions</h2>
|
|
<p>For the purposes of this Agreement:</p>
|
|
<ul>
|
|
<li>
|
|
<strong>“Agreement”</strong> means this End-User License
|
|
Agreement that forms the entire agreement between You and the Company
|
|
regarding the use of the Application.
|
|
</li>
|
|
<li>
|
|
<strong>“Application”</strong> means the cmux desktop
|
|
application for macOS, a native terminal application built on Ghostty.
|
|
</li>
|
|
<li>
|
|
<strong>“Company”</strong> (referred to as “the
|
|
Company”, “We”, “Us” or
|
|
“Our”) refers to Manaflow.
|
|
</li>
|
|
<li>
|
|
<strong>“Content”</strong> refers to content such as text,
|
|
code, images, or other information that can be created, processed, or
|
|
displayed by the Application.
|
|
</li>
|
|
<li>
|
|
<strong>“Country”</strong> refers to the United States.
|
|
</li>
|
|
<li>
|
|
<strong>“Device”</strong> means any macOS computer that
|
|
can run the Application.
|
|
</li>
|
|
<li>
|
|
<strong>“You”</strong> means the individual accessing or
|
|
using the Application.
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>Acknowledgment</h2>
|
|
<p>
|
|
By downloading or using the Application, You are agreeing to be bound
|
|
by the terms of this Agreement. If You do not agree, do not download or
|
|
use the Application.
|
|
</p>
|
|
<p>
|
|
The Application is licensed, not sold, to You by the Company for use
|
|
strictly in accordance with the terms of this Agreement.
|
|
</p>
|
|
|
|
<h2>License</h2>
|
|
|
|
<h3>Scope of License</h3>
|
|
<p>
|
|
The Company grants You a revocable, non-exclusive, non-transferable,
|
|
limited license to download, install and use the Application strictly in
|
|
accordance with this Agreement, for your personal or internal business
|
|
purposes including commercial use in connection with software
|
|
development.
|
|
</p>
|
|
|
|
<h3>License Restrictions</h3>
|
|
<p>You agree not to, and You will not permit others to:</p>
|
|
<ul>
|
|
<li>
|
|
License, sell, rent, lease, assign, distribute, transmit, host, or
|
|
otherwise commercially exploit the Application or make it available to
|
|
any third party
|
|
</li>
|
|
<li>
|
|
Remove, alter or obscure any proprietary notice (including copyright
|
|
or trademark) of the Company
|
|
</li>
|
|
<li>
|
|
Modify, make derivative works of, disassemble, decrypt, reverse
|
|
compile or reverse engineer any part of the Application
|
|
</li>
|
|
</ul>
|
|
|
|
<h2>Intellectual Property</h2>
|
|
<p>
|
|
The Application, including all copyrights, patents, trademarks, trade
|
|
secrets and other intellectual property rights, is and shall remain the
|
|
sole and exclusive property of the Company.
|
|
</p>
|
|
<p>
|
|
You retain ownership of any code or content you create using the
|
|
Application.
|
|
</p>
|
|
|
|
<h2>Modifications and Updates</h2>
|
|
<p>
|
|
The Company reserves the right to modify, suspend or discontinue the
|
|
Application at any time, with or without notice and without liability to
|
|
You.
|
|
</p>
|
|
<p>
|
|
The Company may provide updates, patches, bug fixes, and other
|
|
modifications. Updates may modify or remove certain features. You agree
|
|
that all updates are subject to the terms of this Agreement.
|
|
</p>
|
|
|
|
<h2>Third-Party Services</h2>
|
|
<p>
|
|
The Application integrates with third-party services including Ghostty
|
|
(terminal rendering engine), Sentry (error tracking), and Sparkle
|
|
(auto-update framework). You acknowledge that the Company shall not be
|
|
responsible for any third-party services, including their accuracy,
|
|
completeness, or quality.
|
|
</p>
|
|
|
|
<h2>Term and Termination</h2>
|
|
<p>
|
|
This Agreement shall remain in effect until terminated by You or the
|
|
Company. The Company may terminate this Agreement at any time for any
|
|
reason.
|
|
</p>
|
|
<p>
|
|
This Agreement will terminate immediately if you fail to comply with any
|
|
provision. You may also terminate by deleting the Application and all
|
|
copies from your Device.
|
|
</p>
|
|
<p>
|
|
Upon termination, You shall cease all use of the Application and delete
|
|
all copies from your Device.
|
|
</p>
|
|
|
|
<h2>No Warranties</h2>
|
|
<p>
|
|
The Application is provided “AS IS” and “AS
|
|
AVAILABLE” without warranty of any kind. The Company expressly
|
|
disclaims all warranties, whether express, implied, statutory or
|
|
otherwise, including all implied warranties of merchantability, fitness
|
|
for a particular purpose, title and non-infringement.
|
|
</p>
|
|
<p>
|
|
Some jurisdictions do not allow the exclusion of certain types of
|
|
warranties, so some of the above exclusions may not apply to You.
|
|
</p>
|
|
|
|
<h2>Limitation of Liability</h2>
|
|
<p>
|
|
The entire liability of the Company under this Agreement shall be
|
|
limited to the amount actually paid by You for the Application, or 100
|
|
USD if You haven’t purchased anything.
|
|
</p>
|
|
<p>
|
|
To the maximum extent permitted by law, in no event shall the Company
|
|
be liable for any special, incidental, indirect, or consequential
|
|
damages whatsoever.
|
|
</p>
|
|
|
|
<h2>Indemnification</h2>
|
|
<p>
|
|
You agree to indemnify and hold the Company harmless from any claim or
|
|
demand, including reasonable attorneys’ fees, due to or arising
|
|
out of your use of the Application or violation of this Agreement.
|
|
</p>
|
|
|
|
<h2>Severability and Waiver</h2>
|
|
<p>
|
|
If any provision of this Agreement is held to be unenforceable, it will
|
|
be changed and interpreted to accomplish its objectives to the greatest
|
|
extent possible, and the remaining provisions will continue in full
|
|
force and effect.
|
|
</p>
|
|
|
|
<h2>Governing Law</h2>
|
|
<p>
|
|
The laws of the United States, excluding conflicts of law rules, shall
|
|
govern this Agreement and your use of the Application.
|
|
</p>
|
|
|
|
<h2>Changes to This Agreement</h2>
|
|
<p>
|
|
The Company reserves the right to modify this Agreement at any time. If
|
|
a revision is material, we will provide at least 30 days’ notice.
|
|
By continuing to use the Application after revisions become effective,
|
|
You agree to be bound by the revised terms.
|
|
</p>
|
|
|
|
<h2>Contact Us</h2>
|
|
<p>If you have any questions about this Agreement:</p>
|
|
<ul>
|
|
<li>
|
|
Email us at{" "}
|
|
<a href="mailto:founders@manaflow.com">founders@manaflow.com</a>
|
|
</li>
|
|
</ul>
|
|
</>
|
|
);
|
|
}
|