diff --git a/_includes/includes/ui/keyboard-details.php b/_includes/includes/ui/keyboard-details.php index 0132e45d..2df5c203 100644 --- a/_includes/includes/ui/keyboard-details.php +++ b/_includes/includes/ui/keyboard-details.php @@ -4,13 +4,14 @@ require_once('includes/template.php'); require_once('includes/playstore.php'); require_once('includes/appstore.php'); + require_once('includes/ui/section-announcement.php'); use \DateTime; use \Keyman\Site\com\keyman\KeymanWebHost; use \Keyman\Site\Common\KeymanHosts; use \Keyman\Site\com\keyman\Locale; use \Keyman\Site\com\keyman; - + Locale::definePageLocale('LOCALE_KEYBOARDS_DETAILS', 'keyboards/details'); $_m_KeyboardDetails = function($id, ...$args) { return Locale::m(LOCALE_KEYBOARDS_DETAILS, $id, ...$args); @@ -307,7 +308,7 @@ protected static function WriteTitle() { } else { $head_options += [ 'js' => ['../keyboard-search/keyboard-details.js', 'qrcode.js'], - 'css' => ['template.css', '../keyboard-search/search.css'] + 'css' => ['template.css', '../keyboard-search/search.css', 'section-announcement.css'] ]; $embed_target = ''; } @@ -319,6 +320,7 @@ protected static function WriteTitle() { var embed_query=''; @@ -376,7 +378,7 @@ protected static function WriteTitle() {
" . $_m_KeyboardDetails("important_note") . " " . - $_m_KeyboardDetails("obsolete_version") . + $_m_KeyboardDetails("obsolete_version") . " $dep" . $_m_KeyboardDetails("instead") . "
@@ -636,7 +638,7 @@ protected static function WriteKeyboardDetails() { $s = @file_get_contents(KeymanHosts::Instance()->SERVER_api_keyman_com.'/keyboard/' . rawurlencode($name)); if ($s === FALSE) { echo "$hname "; } else { @@ -669,9 +671,9 @@ protected static function WriteKeyboardDetails() { foreach($langs as $bcp47 => $detail) { if($n == 3) { - echo " " . + echo " " . $_m_KeyboardDetails("expand_more", $count) . ""; - echo "" . + echo "" . $_m_KeyboardDetails("collapse") . " "; } if (property_exists($detail, 'languageName')) { diff --git a/_includes/includes/ui/section-announcement.php b/_includes/includes/ui/section-announcement.php new file mode 100644 index 00000000..9fde2684 --- /dev/null +++ b/_includes/includes/ui/section-announcement.php @@ -0,0 +1,22 @@ + + + +
+
+
+

Funding appeal — we need your support

+

+ The Keyman project is facing a major funding crisis. Learn more +

+
+
+
+ + td img { + width: 150px; +} \ No newline at end of file diff --git a/cdn/dev/css/index.css b/cdn/dev/css/index.css index 71f30fbd..7b103f48 100644 --- a/cdn/dev/css/index.css +++ b/cdn/dev/css/index.css @@ -2,6 +2,8 @@ * Section1 CSS * ***********************************/ +@import url('section-announcement.css'); + .main1 { float: left; width: 100%; @@ -242,30 +244,6 @@ color: #2F4B67 } -.section-announcement { - color: #B92034; - background: white; -} - -.section-announcement p { - font-size: 36pt; - font-weight: bold; - padding: 36px 12px; - text-align: center; -} - -.section-announcement p a { - color: #B92034; - text-decoration: none; - padding: 4px; - display: inline-block; -} - -.section-announcement p a:hover { - background: #D6D6D6; - border-radius: 6px; -} - .lang-ital { font-style: italic; font-size: 12pt; diff --git a/cdn/dev/css/section-announcement.css b/cdn/dev/css/section-announcement.css new file mode 100644 index 00000000..d6cf9c35 --- /dev/null +++ b/cdn/dev/css/section-announcement.css @@ -0,0 +1,49 @@ + +html .section-announcement { + color: #B92034; + background: white; + padding: 0; + + /* grow transition */ + display: grid; + animation: 2s ease-out 0s 1 expand-section-announcement; + overflow: hidden; +} + +@keyframes expand-section-announcement { + 0% { + grid-template-rows: 0fr; + } + 75% { + grid-template-rows: 0fr; + } + 100% { + grid-template-rows: 1fr; + } +} + +.section-announcement > .wrapper { + overflow: hidden; +} + +.section-announcement .content { + padding: 36px 12px; +} + +.section-announcement p { + font-size: 36pt; + font-weight: bold; + padding: 8px 4px; + text-align: center; +} + +.section-announcement p a { + color: #B92034; + padding: 4px; + display: inline-block; +} + +.section-announcement p a:hover { + background: #D6D6D6; + border-radius: 6px; +} diff --git a/cdn/dev/css/template.css b/cdn/dev/css/template.css index 49da617f..8fddbe62 100644 --- a/cdn/dev/css/template.css +++ b/cdn/dev/css/template.css @@ -133,6 +133,11 @@ q:after { content: none; } +#section2 .markdown h3 { + font-size: 16pt; + font-weight: bold +} + .markdown blockquote { margin: 12px 24px 24px; padding: 18px 6px 6px 6px; @@ -151,6 +156,14 @@ q:after { padding: 1em; } +#section2 .markdown strong { + font-weight: bold; +} + +#section2 .markdown em { + font-style: italic; +} + table { border-collapse: collapse; border-spacing: 0; diff --git a/funding-appeal/index.md b/funding-appeal/index.md new file mode 100644 index 00000000..e26af018 --- /dev/null +++ b/funding-appeal/index.md @@ -0,0 +1,52 @@ +--- +title: Keep Keyman Free to All +--- + + + +This year, our main partner—who has for years allowed us to offer Keyman free to +users—faced funding limitations and could not contribute. To keep this tool +available at no cost for every language community, we need your help. + +# To continue, we must raise: US$280,000 by 1 March 2026 + + + +## You can help! + +* GIVE what you can + +* SHARE the need with your friends + +We’re inviting those who care about language equity to step in and help sustain +the work. _Let’s raise US$280,000 together!_ + +Keyman supports thousands of Indigenous and minority languages worldwide. + +Every update, security fix, new keyboard, and mobile release depends on a small +team and a global community who believe that every language deserves a place in +the digital world. + +
+ +### Your support will help: + +* Keep your keyboards working when phones and apps update + +* Support new and improved keyboards for more languages + +* Ensure Keyman stays free and open for everyone + +* Create access for more language communities + +# No language left offline + +Our mission is to empower every language to thrive in the digital world, giving +communities the tools to read, write, and communicate in their own language—at +no cost to them. + + + diff --git a/funding-appeal/share.md b/funding-appeal/share.md new file mode 100644 index 00000000..4205f4c1 --- /dev/null +++ b/funding-appeal/share.md @@ -0,0 +1,34 @@ +--- +title: Share your story +--- + + + +Please share your story of how Keyman has served you and your language +community. We would love to hear about how Keyman has impacted you! + +Many people use Keyman, but the Keyman story is not about the statistics. The +Keyman story is your story: you, the individuals, communities, and language +groups who can now type your language using Keyman. + +Your stories: + +* bring the Keyman project alive + +* encourage the team in their continued service + +* help us engage with major funders + + + + +If you prefer to share by email, you can write to +[support@keyman.com](mailto:support@keyman.com?subject=My%20Keyman%20story). + +Please note: by sharing your story with us, you are giving us permission to +republish the story with credit to you. Please do not share sensitive details, +and feel free to use pseudonyms where appropriate. We may make minor edits for +coherence only. + +> _[Keyman] helps me to write in Tankri. The only app where we can type in our regional script._ +> - Ankush Thakur, Nov 19, 2025 diff --git a/index.php b/index.php index 30e7ab86..e830a753 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,7 @@  'Unlock the power of your language with Keyman customizable keyboard software. Available for Windows, Mac, Linux, Android, iPhone, and web, we support over 2,000 languages to make communication seamless and meaningful.', - 'css' => ['template.css','index.css'], + 'css' => ['template.css','index.css','section-announcement.css'], 'showMenu' => true, 'addSection2' => false ]); ?>
+ + +
+ +

Type to the world
in your language

" alt='More than 2500 languages supported' />
+ -

Choose a keyboard for your language