From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.user/18808 Path: news.gmane.org!.POSTED!not-for-mail From: Bob Newell Newsgroups: gmane.emacs.gnus.user Subject: Re: Changing language input method by addressee Date: Fri, 09 Mar 2018 09:29:45 -1000 Organization: Avi Gobbler Publishing Message-ID: <873719ujx2.fsf@bobnewell.net> References: <87lgf1vnkq.fsf@bobnewell.net> <87vae5yb23.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1520623682 18340 195.159.176.226 (9 Mar 2018 19:28:02 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 9 Mar 2018 19:28:02 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) To: info-gnus-english Original-X-From: info-gnus-english-bounces+gegu-info-gnus-english=m.gmane.org@gnu.org Fri Mar 09 20:27:58 2018 Return-path: Envelope-to: gegu-info-gnus-english@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1euNgL-0004au-10 for gegu-info-gnus-english@m.gmane.org; Fri, 09 Mar 2018 20:27:57 +0100 Original-Received: from localhost ([::1]:47624 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euNiM-00053r-43 for gegu-info-gnus-english@m.gmane.org; Fri, 09 Mar 2018 14:30:02 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35942) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1euNiD-00052u-Am for info-gnus-english@gnu.org; Fri, 09 Mar 2018 14:29:54 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1euNiA-0005v6-7M for info-gnus-english@gnu.org; Fri, 09 Mar 2018 14:29:53 -0500 Original-Received: from mail-pg0-x232.google.com ([2607:f8b0:400e:c05::232]:33163) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1euNi9-0005us-W3 for info-gnus-english@gnu.org; Fri, 09 Mar 2018 14:29:50 -0500 Original-Received: by mail-pg0-x232.google.com with SMTP id g12so3927537pgs.0 for ; Fri, 09 Mar 2018 11:29:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bobnewell-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:organization:references:date:in-reply-to:message-id :user-agent:mime-version; bh=dGY9LkdiPeJIrbqpK5oTgcJjFYUY38PUBgEGVDks+JM=; b=lCMnt+XxRmKiVHh1psEXJW8L9Odd0nk0W2BKo/krNQIOiCTiYXLPy+/iU4PtvIllGR bDjmhekXexawPkQD2+ltWq4zq0YJp33a4RU7vTHCCbi/k1tJMPOqJvoUjyWaTEqcOL5c 9ed5tB1WiXeoUlhPy17gL2j26qJm40t0yckyFTkmTqilLE2eQ/0UnXwaUhJeVcTotaBA SwQp8l15XNjcZY63HaC5Rg8cQOXuwd9cTtoK+xR6QInWktTeQDCj7rFQKzHNPJ21cRI5 rOkmJPEEPoT8QtUkR6I/f0mFcavEsu3l/2LL/tvUdryYKkw+Pd5DMC6YbOebiO4Li4+t +sDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:organization:references:date :in-reply-to:message-id:user-agent:mime-version; bh=dGY9LkdiPeJIrbqpK5oTgcJjFYUY38PUBgEGVDks+JM=; b=qKRPHwf7o4sfA5rSt2Nuy+a2wzefxE9BGEkUGDnkwlWkn7BABCfMvhOMeOz76wINWT XjJ1nIwXTyGNzJ9QwDcDp1YT9bx5FMIs89kqEGbD4FR8usEzytSwoGOdqgJjY2o/nAR2 XoSmKJLjep5JMj8OKvmmXVRQIexPN3RrscpwVuYvCoHVwTPYWz3orV1qxWr9o8ZsGbQf RlxVbkjYQJFLBPcPsFMp/6zMixSz8441Wmdu2eEbYTSr0zZj13/lVUEUT5CAM5SgOCXO aAbJh5AiY/xqAqgFJmkZN64hQ21Ip/iAVFcZTPA2BzQDZxOhtcEbZY0UQvqEGtIajEDr uzEg== X-Gm-Message-State: APf1xPAYxH+sBbi/QFVUh+bZDr5laMRfmIemz6l6aQMs6vUEhQk0P4a8 yk0Ge5CLB8mTeCeJf0kEsFUeqFSe X-Google-Smtp-Source: AG47ELtq/b0DYOi5v9caZvJVo67KVKHCYRkk8nahHgYseMaG73oNV6i25umzKEzf/RcZVkGizRP/vQ== X-Received: by 10.98.19.146 with SMTP id 18mr31405634pft.3.1520623788212; Fri, 09 Mar 2018 11:29:48 -0800 (PST) Original-Received: from localhost (udp073869uds.hawaiiantel.net. [141.239.248.62]) by smtp.gmail.com with ESMTPSA id 70sm3727983pgb.86.2018.03.09.11.29.47 for (version=TLS1_2 cipher=AES128-SHA bits=128/128); Fri, 09 Mar 2018 11:29:47 -0800 (PST) In-Reply-To: <87vae5yb23.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Fri, 09 Mar 2018 15:15:16 +0800") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::232 X-BeenThere: info-gnus-english@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Announcements and discussions for GNUS, the GNU Emacs Usenet newsreader \(in English\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: info-gnus-english-bounces+gegu-info-gnus-english=m.gmane.org@gnu.org Original-Sender: "info-gnus-english" Xref: news.gmane.org gmane.emacs.gnus.user:18808 Archived-At: Aloha everyone, Just for completeness, here's the final result, and it's much much better. In BBDB just 'i' a 'language' field for those correspondents with whom you correspond in whatever language, and then enter the input mode, like 'french-postfix'. As long as you're using message mode and BBDB completion, this works. If you use gnu-alias, initialize that before you get to the code below, as the message-setup-hook I add should be the last in the chain. -- (defun rjn-change-lang-by-addressee () (interactive) (let ((addressee (message-fetch-field "To")) netaddr person langpref) (if addressee (setq netaddr (cadr (mail-extract-address-components addressee)))) (if netaddr (setq person (car (bbdb-search (bbdb-records) :mail netaddr)))) (if person (setq langpref (bbdb-record-field person 'language))) (if langpref (set-input-method langpref)))) (add-hook 'message-setup-hook 'rjn-change-lang-by-addressee t) (advice-add 'bbdb-complete-mail :after #'rjn-change-lang-by-addressee) -- This could but shouldn't be simplified with multiple let* assignments, as nil fields cause error messages to be emitted in some of the functions. The serial 'if' statements cause negligible additional run time. If 'langpref' is invalid, there's a message, and that's a good thing. -- Bob Newell Honolulu, Hawai`i * Via Gnus/BBDB/Org/Emacs/Linux *