From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.devel Subject: Swedish calendar localization in official release (sv-kalender.el)? Date: Sun, 04 Jul 2021 13:40:25 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30599"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jul 04 13:41:37 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m00VE-0007ob-N6 for ged-emacs-devel@m.gmane-mx.org; Sun, 04 Jul 2021 13:41:36 +0200 Original-Received: from localhost ([::1]:57522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m00VC-0001TG-Qn for ged-emacs-devel@m.gmane-mx.org; Sun, 04 Jul 2021 07:41:35 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48618) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m00UD-0000iQ-At for emacs-devel@gnu.org; Sun, 04 Jul 2021 07:40:33 -0400 Original-Received: from mail-am7eur06olkn2093.outbound.protection.outlook.com ([40.92.16.93]:4032 helo=EUR06-AM7-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m00UA-00050h-Hs for emacs-devel@gnu.org; Sun, 04 Jul 2021 07:40:33 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ArBRbNXiXaO3dJIE3LE3i+EZ6CmXUv+3CDWS6a2IHxr9e7pYEIjJCljIFOedIHSga56ooynTXY040TgrEedIthS3kX8f+SbAPhE1r5RrjWNvdqoioUpN8kF7y0yXDkwXRj2ZeSgpMujITD2vqmwGkDBRnpvWX85+FCDuftCXyHJ8/C+/qGdQMm9JcFIBDMDOqzJlcYx8kp1IMTe1ZrH+hYN+q6xVAt52O/RcQGcXn7Uy/mRpZqegyCrdbpMltKWnuuSKz9J8N5BD67FOtsqTOLMqu26L19mxGVVyOVnHsmwykwDZ5NzKfFQb8YprhrThjz6NaiM5rbC0Ug30+XRWZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wv1JK5GWNylOWil5AoBDJZWYYGMBNQnS6TWIBATUdSI=; b=GXizEYbKU22XRpzutqrMeMWeKRKaWMVb5uCCyhlbxpVq9am7srVpMAmfoeK+pCxMcjmtqXpZLsnIB+n0JpHMYA8crIKqrIHBQULPn+GVlWGdv7UPbjxfUcmLvImzT47nvDOkQ117/ihaRg+f7Q2j2Yqf4WCshFAAaMQ2sHQEi7KObGRuRgaoftSZH0fFAZiU0ArpKTgHaK4MTCp6HKiclGJVoLjoRdEEiZ+rw1R3G5FWlmuoqG5Lar7fCh5yDNOGi7Bn9IbaFQEv5ffSizW3CwS5gAdmk4gMZo95EyQdhWbUrp2sH1KeSROS/skqFYlquLqC+UTIjqFlQMd3cU86Fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wv1JK5GWNylOWil5AoBDJZWYYGMBNQnS6TWIBATUdSI=; b=cUWPe2GzxIGy3z9oda8e1aCzlD1iINdHvHcpSB1JsZodHj+RYYx+1mpEk/2lS4ur0McPnNA6l1YfOUBWhC70cicqplLBI6FRo4BrSJU6CwDaitYX9NI6MxzELLX2qInWnli/+h+5WOFSQJVjMrX/rnwg9aimPE7zhzKzo3Ajhj8wgZjuKCd2g6Jux9hA3hujUM/QgA6rd20zQm4AkCmE93SwbUXnBjkcASWZKf6ypojWG5kGx0/qwBPGONaDj9EOTqzOwznJlY8/iG0XDEvz/53n/3DF0STp8CwWIs039lrXKCMAtzVeeQ4IHfgIjzlajTdGo6kuP8o2fHCNVWMpYg== Original-Received: from AM7EUR06FT039.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::47) by AM7EUR06HT248.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::358) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22; Sun, 4 Jul 2021 11:40:26 +0000 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com (2a01:111:e400:fc36::45) by AM7EUR06FT039.mail.protection.outlook.com (2a01:111:e400:fc36::330) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Sun, 4 Jul 2021 11:40:26 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:10DACB54D96C42A2E0A556349B610A037B6CAC93B71F968A8B76853CDD103C5B; UpperCasedChecksum:861E455A1436C86D7F26A69F0AB5E003E271BA85A813DD26C0C7E635F512B381; SizeAsReceived:7233; Count:43 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::656a:1596:f5dc:12ea]) by AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::656a:1596:f5dc:12ea%7]) with mapi id 15.20.4287.033; Sun, 4 Jul 2021 11:40:26 +0000 X-TMN: [G9nZIksi+3fDcGi+mtUpS/0nCdcpOyuo] X-ClientProxiedBy: BE0P281CA0002.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:a::12) To AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) X-Microsoft-Original-Message-ID: <87v95q2tp2.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from pascal.homepc (81.232.177.30) by BE0P281CA0002.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.8 via Frontend Transport; Sun, 4 Jul 2021 11:40:26 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 43 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 60933aed-e383-4c11-dd22-08d93ee08464 X-MS-TrafficTypeDiagnostic: AM7EUR06HT248: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4XQzrX4uZgOmUF4KAWeytDlk3ovKzgrSepRbDSzTjTQFz5Ozib3pGlrePBABQeh5tlJKm7YVo3GyvzuTF4jKKeBbeKj46A4uFkjI4CQwgyjpISQtZG8uSaqaw8T8rHN4J1IWF/nrJ5IainOYlyIvwIU2WJIXLOXKPtfZkdELOHMDVLOgejTcmzmbsW79QDRvmT1elakZ7y7Ze1pxFZkDa/tVYuNWTZuncm+99wSXZ5YJi+rcYHPq3PtevGIdiJdA38NXIgxWcGBokEH3DdCSWZxB7ID3gM2IIiLHBQ3FVWTzN4eqdvA3Xe3c0xdDt7F4rvQm32Qme+dF+V+hJVeC6vrzbC3pv7e5bEn8D/q4pa4hqDIa5PD8D0XnSU3M60TJYYJP9CK63YydUeJXWpm4foWV4rRIk6omphCkadcHmtoDCvPCDxJVTaPUt9MiUVCaeUfM0/lp+Ik0GQVn4h+qc8Om5xPig6HBTKXLHwTEVDg= X-MS-Exchange-AntiSpam-MessageData: TOGbRXCiZ6JlN9K/TwRYU7t18DH+2KKqQfjmajZ1zuDeQLzpzG/zNT0waqT8cRRYo03ygnQzyxNoK0/CiRwl7lAPer8KaX87LxmxLyVCgxglR3Scdb3C2qfSQmRdvQNoidF9+15m7Ml1m9g4ormg0A== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 60933aed-e383-4c11-dd22-08d93ee08464 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2021 11:40:26.7740 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT039.eop-eur06.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7EUR06HT248 Received-SPF: pass client-ip=40.92.16.93; envelope-from=arthur.miller@live.com; helo=EUR06-AM7-obe.outbound.protection.outlook.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:271122 Archived-At: --=-=-= Content-Type: text/plain Just a question/suggestion: can we get a localized calendar for swedish language into official release? There is a small file by Daniel Jensen, found at: http://bigwalter.net/daniel/elisp/. I did a small hack to it, just added names for abbreviated day names and header array since it seems to not be properly initialized if sv-kalender is loaded after the calender.el. In a short mail correspondence with Daniel, he says he has signed FSF copyrights, so I guess, legaly it shouldn't be a problem to include that file amongst few other localizations in lisp/calender? I don't know what is your policy to include localizations, I see there are not many there, and those that are there (French "revolutionary") and Chinese do much more than just localize names and few hollidays. Anyway, it would be convenient if it was included. Maybe the name of the file itself should be adjusted, like calender-swedish.el or something? Also a side question about localizations as found on Emacs Wiki: https://www.emacswiki.org/emacs/CalendarLocalization I can't imagine that day and month names and few other bits related to that information can be copyrighted. Would ot be interesting to collect info from that wiki page into some file with localized names and maybe have Emacs auto load localized names when avialable based on value in LANG env (or whatever variable is suitable), and a variable to turn on/off that behaviour? --=-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename=sv-kalender.el Content-Transfer-Encoding: quoted-printable ;;; sv-kalender.el --- Swedish calendar for Emacs ;; Copyright (C) 2002,2003,2004,2007,2009,2018 Daniel Jensen ;; Author: Daniel Jensen ;; Version: 1.9 ;; Keywords: calendar swedish localization ;; This file is not part of GNU Emacs. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;;; Kommentarer: ;; Swedish calendar localization. Note: Only a few comments in this ;; file are in English. The rest is in Swedish. ;; Denna fil modifierar hur Emacs kalender ser ut. Den byter namn p=C3=A5 ;; veckodagar, m=C3=A5nader etc., samt inf=C3=B6r svenska helgdagar och h= =C3=B6gtider ;; i st=C3=A4llet f=C3=B6r de amerikanska. ;; ;; F=C3=B6r att anv=C3=A4nda den svenska kalendern, spara filen i din load-= path ;; och anv=C3=A4nd (load "sv-kalender") i din ~/.emacs. ;;; History (=C3=A4ndringar): ;; 1.9.1 - added provide statement ;; 1.9 - Update for Emacs 25 ;; 1.8 - Emacs 23 support. GPLv3. ;; 1.6 - Lunar phase names, sunrise/sunset ;; (m=C3=A5nfasernas namn, soluppg=C3=A5ng och -nedg=C3=A5ng) ;; 1.5 - Cleanup, introduce sv prefix (st=C3=A4dning, nytt sv-prefix) ;; 1.4 - Months and days use lower-case initials ;; (m=C3=A5nader och dagar med sm=C3=A5 begynnelsebokst=C3=A4ver) ;; 1.3 - New flag days, Easter bug fixes ;; (nya flaggdagar och en bugg i "mer p=C3=A5sk" fixad) (Alan Campbel= l) ;; 1.2 - Advent Sundays fixed (adventsdagarna justerade) (Alan Campbell) ;; 1.1 - Fat Tuesday moved back a week (fettisdagen flyttad en vecka bak=C3= =A5t). ;;; Code: (require 'calendar) (require 'holidays) (require 'solar) (require 'lunar) ;; Veckan b=C3=B6rjar med en m=C3=A5ndag (setq calendar-week-start-day 1) ;; Anv=C3=A4nd "europeiska" datum (dag/m=C3=A5ndad) (setq calendar-date-style 'european) ;; Datumformat (setq calendar-date-display-form '((if dayname (concat dayname ", ")) day " " monthname " " year)) ;; 24-timmarsklocka utan tidszon (setq calendar-time-display-form '(24-hours ":" minutes)) ;; Dagarnas namn (setq calendar-day-name-array ["s=C3=B6ndag" "m=C3=A5ndag" "tisdag" "onsdag" "torsdag" "fredag" "l= =C3=B6rdag"] calendar-day-abbrev-array ["s=C3=B6n" "m=C3=A5n" "tis" "ons" "tors" "fre" "l=C3=B6r"] calendar-day-header-array ["s=C3=B6" "m=C3=A5" "ti" "on" "to" "fr" "l=C3=B6"]) ;; M=C3=A5nadernas namn (setq calendar-month-name-array ["januari" "februari" "mars" "april" "maj" "juni" "juli" "augusti" "september" "oktober" "november" "december"]) ;; =C3=85rets v=C3=A4ndpunkter (eval-after-load "solar" '(setq solar-n-hemi-seasons '("V=C3=A5rdagj=C3=A4mningen" "Sommarsolst=C3=A5ndet" "H=C3=B6stdagj=C3=A4mningen" "Vintersolst=C3=A5ndet"))) ;; M=C3=A5nfaser (defadvice lunar-phase-name (around sv-lunar-phase-name activate) "M=C3=A5nfasernas namn p=C3=A5 svenska." (setq ad-return-value (let ((phase (ad-get-arg 0))) (cond ((=3D 0 phase) "Nym=C3=A5ne") ((=3D 1 phase) "V=C3=A4xande halvm=C3=A5ne") ((=3D 2 phase) "Fullm=C3=A5ne") ((=3D 3 phase) "Avtagande halvm=C3=A5ne"))))) ;; Soluppg=C3=A5ng och -nedg=C3=A5ng (defadvice solar-sunrise-sunset-string (around sv-solar-sunrise-sunset-stri= ng activate) "Soluppg=C3=A5ng och solnedg=C3=A5ng p=C3=A5 svenska." (setq ad-return-value (let ((l (solar-sunrise-sunset date))) (format "%s, %s vid %s (%s timmar dagsljus)" (if (car l) (concat "Sol upp " (apply 'solar-time-string (car l))) "Ingen soluppg=C3=A5ng") (if (car (cdr l)) (concat "ned " (apply 'solar-time-string (car (cdr l)))) "ingen solnedg=C3=A5ng") (eval calendar-location-name) (car (cdr (cdr l))))))) ;; G=C3=B6m vissa helgdagar? (defvar sv-hide-some-holidays nil "Non-nil means some holidays won't show in the calendar. Om icke-nil, g=C3=B6m vissa helgdagar i kalendern.") ;; P=C3=A5skdagen (from holiday-easter-etc) (defun sv-easter (year) "Calculate the date for Easter in YEAR. Ber=C3=A4kna p=C3=A5skdagen f=C3=B6r =C3=A5r YEAR." (let* ((century (1+ (/ year 100))) (shifted-epact (% (+ 14 (* 11 (% year 19)) (- (/ (* 3 century) 4)) (/ (+ 5 (* 8 century)) 25) (* 30 century)) 30)) (adjusted-epact (if (or (=3D shifted-epact 0) (and (=3D shifted-epact 1) (< 10 (% year 19)))) (1+ shifted-epact) shifted-epact)) (paschal-moon (- (calendar-absolute-from-gregorian (list 4 19 year)) adjusted-epact))) (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))) ;; Helgdagar (setq holiday-general-holidays '((holiday-fixed 1 1 "Ny=C3=A5rsdagen") (holiday-fixed 1 6 "Trettondedag jul") ;; P=C3=A5sk och pingst (holiday-filter-visible-calendar (mapcar (lambda (dag) (list (calendar-gregorian-from-absolute (+ (sv-easter displayed-year) (car dag))) (cadr dag))) '(( -2 "L=C3=A5ngfredagen") ( -1 "P=C3=A5skafton") ( 0 "P=C3=A5skdagen") ( +1 "Annandag p=C3=A5sk") ( +39 "Kristi himmelf=C3=A4rdsdag") ( +49 "Pingstdagen") ( +50 "Annandag pingst")))) (holiday-fixed 5 1 "F=C3=B6rsta maj") (let ((midsommar-d (calendar-dayname-on-or-before 6 (calendar-absolute-from-gregorian (list 6 26 displayed-year))))) ;; Midsommar (holiday-filter-visible-calendar (list (list (calendar-gregorian-from-absolute (1- midsommar-d)) "Midsommarafton") (list (calendar-gregorian-from-absolute midsommar-d) "Midsommardagen") ;; Alla helgons dag (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 6 (calendar-absolute-from-gregorian (list 11 6 displayed-year)))) "Alla helgons dag")))) =20 (holiday-fixed 12 25 "Juldagen") (holiday-fixed 12 26 "Annandag jul"))) ;; Andra h=C3=B6gtider (setq holiday-other-holidays '((holiday-fixed 1 13 "Tjugondag Knut") (unless sv-hide-some-holidays (holiday-fixed 1 28 "Konungens namnsdag")) (unless sv-hide-some-holidays (holiday-fixed 2 2 "Kyndelsm=C3=A4ssodagen")) (holiday-fixed 2 14 "Alla hj=C3=A4rtans dag") ;; Fettisdagen (holiday-filter-visible-calendar (list (list (calendar-gregorian-from-absolute (calendar-dayname-on-or-before 2 (- (sv-easter displayed-year) 47))) "Fettisdagen"))) (holiday-fixed 3 8 "Internationella kvinnodagen") (unless sv-hide-some-holidays (holiday-fixed 3 12 "Kronprinsessans namnsdag")) (holiday-fixed 3 25 "V=C3=A5rfrudagen") ;; Mer p=C3=A5sk (holiday-filter-visible-calendar (mapcar (lambda (dag) (list (calendar-gregorian-from-absolute (+ (sv-easter displayed-year) (car dag))) (cadr dag))) (if sv-hide-some-holidays '(( -3 "Sk=C3=A4rtorsdagen")) '(( -7 "Palms=C3=B6ndagen") ( -4 "Dymmelonsdagen") ( -3 "Sk=C3=A4rtorsdagen"))))) (unless sv-hide-some-holidays (holiday-fixed 4 30 "Konungens f=C3=B6delsedag")) (unless sv-hide-some-holidays (holiday-fixed 4 1 "F=C3=B6rsta april")) (holiday-fixed 4 30 "Valborgsm=C3=A4ssoafton") (holiday-float 5 0 -1 "Mors dag") (holiday-fixed 6 6 "Sveriges nationaldag") (unless sv-hide-some-holidays (holiday-fixed 7 14 "Kronprinsessans f=C3=B6delsedag")) (unless sv-hide-some-holidays (holiday-fixed 8 8 "Drottningens namnsdag")) (holiday-fixed 10 24 "FN-dagen") (holiday-float 11 0 2 "Fars dag") (unless sv-hide-some-holidays (holiday-fixed 11 6 "Gustaf Adolfsdagen")) (holiday-fixed 11 10 "M=C3=A5rtensafton") (holiday-float 12 0 -4 "F=C3=B6rsta advent" 24) (holiday-float 12 0 -3 "Andra advent" 24) (holiday-float 12 0 -2 "Tredje advent" 24) (holiday-float 12 0 -1 "Fj=C3=A4rde advent" 24) (holiday-fixed 12 10 "Nobeldagen") (holiday-fixed 12 13 "Lucia") (unless sv-hide-some-holidays (holiday-fixed 12 23 "Drottningens f=C3=B6delsedag")) (holiday-fixed 12 24 "Julafton") (holiday-fixed 12 31 "Ny=C3=A5rsafton"))) ;; Solst=C3=A5nd, dagj=C3=A4mningar, vinter- och sommartid (setq holiday-solar-holidays (if sv-hide-some-holidays nil '((if (fboundp 'atan) (solar-equinoxes-solstices)) (if (progn (require 'cal-dst) t) (funcall 'holiday-sexp calendar-daylight-savings-starts '(format "Sommartid b=C3=B6rjar %s" (if (fboundp 'atan) (solar-time-string (/ calendar-daylight-savings-starts-ti= me (float 60)) calendar-standard-time-zone-name) "")))) (funcall 'holiday-sexp calendar-daylight-savings-ends '(format "Vintertid b=C3=B6rjar %s" (if (fboundp 'atan) (solar-time-string (/ calendar-daylight-savings-ends-time (float 60)) calendar-daylight-time-zone-name) "")))))) ;; Listan med kalenderns helgdagar (setq calendar-holidays (append holiday-general-holidays holiday-local-holidays holiday-other-holidays holiday-solar-holidays)) (provide 'sv-kalender) --=-=-=--