* src/LdsUtils.py: switch to parsing an external XML file instead of

hard coded values
	* src/data/lds.xml: new file
	* src/data/Makefile.am: handle new lds.xml
	* src/Editors/_EditLdsOrd.py: handle new LDS temple scheme
	* src/GrampsDbUtils/_GedcomParse.py: handle new LDS temple scheme
	* DisplayTabs/_LdsModel.py: handle new LDS temple scheme

2007-06-23  Don Allingham  <don@gramps-project.org>


svn: r8648
This commit is contained in:
Don Allingham 2007-06-24 04:32:54 +00:00
parent e8c8245c05
commit e978a43d3a
8 changed files with 607 additions and 172 deletions

View File

@ -1,3 +1,12 @@
2007-06-23 Don Allingham <don@gramps-project.org>
* src/LdsUtils.py: switch to parsing an external XML file instead of
hard coded values
* src/data/lds.xml: new file
* src/data/Makefile.am: handle new lds.xml
* src/Editors/_EditLdsOrd.py: handle new LDS temple scheme
* src/GrampsDbUtils/_GedcomParse.py: handle new LDS temple scheme
* DisplayTabs/_LdsModel.py: handle new LDS temple scheme
2007-06-23 Don Allingham <don@gramps-project.org>
* src/Editors/_EditUrl.py: add jump button
* src/DisplayTabs/_WebEmbedList.py: add jump button

2
TODO
View File

@ -49,7 +49,7 @@
http://sourceforge.net/mailarchive/forum.php?thread_id=3134931&forum_id=1993
for the details.
* Move LDS temple info out of const.py and into an XML file
* Move LDS temple info out of const.py and into an XML file: DONE
* Make the descendant graph adapt to the page size, not stuck with the
current 3 entries per page.

View File

@ -40,6 +40,7 @@ import gtk
#
#-------------------------------------------------------------------------
import DateHandler
import LdsUtils
#-------------------------------------------------------------------------
#
@ -53,16 +54,13 @@ class LdsModel(gtk.ListStore):
def __init__(self, lds_list, db):
gtk.ListStore.__init__(self, str, str, str, str, str, object)
import LdsUtils
self.db = db
for lds_ord in lds_list:
self.append(row=[
lds_ord.type2str(),
DateHandler.get_date(lds_ord),
lds_ord.status2str(),
LdsUtils.temple_to_abrev.get(lds_ord.get_temple(),
_("unknown")),
LdsUtils.Temples.name(lds_ord.get_temple()),
self.column_place(lds_ord),
lds_ord,
])

View File

@ -202,15 +202,11 @@ class EditLdsOrd(EditSecondary):
self.db.readonly,
changed=self.ord_type_changed)
temple_list = []
for val in LdsUtils.temples:
temple_list.append((val[1],val[0]))
self.temple_menu = MonitoredStrMenu(
self.top.get_widget('temple'),
self.obj.set_temple,
self.obj.get_temple,
temple_list,
LdsUtils.Temples.name_code_data(),
self.db.readonly)
self.status_menu = MonitoredMenu(
@ -387,15 +383,11 @@ class EditFamilyLdsOrd(EditSecondary):
if item[0] in self._get_types()],
self.db.readonly)
temple_list = []
for val in LdsUtils.temples:
temple_list.append((val[1],val[0]))
self.temple_menu = MonitoredStrMenu(
self.top.get_widget('temple'),
self.obj.set_temple,
self.obj.get_temple,
temple_list,
Ldsutils.Temples.name_code_data(),
self.db.readonly)
self.status_menu = MonitoredMenu(

View File

@ -4456,10 +4456,10 @@ class GedcomParser(UpdateCallback):
def extract_temple(self, line):
def get_code(code):
if LdsUtils.temple_to_abrev.has_key(code):
if LdsUtils.Temples.is_valid_code(code):
return code
elif LdsUtils.temple_codes.has_key(code):
return LdsUtils.temple_codes[code]
elif LdsUtils.Temples.is_valid_name(code):
return LdsUtils.Temples.code(code)
code = get_code(line.data)
if code:

View File

@ -20,160 +20,105 @@
# $Id$
temples = (
# Temple Name , Code , [Old Codes...]
("Aba, Nigeria" , "ABA", ),
("Accra, Ghana" , "ACCRA", ),
("Adelaide, Australia" , "ADELA", ),
("Albuquerque, New Mexico" , "ALBUQ", ),
("Anchorage, Alaska" , "ANCHO", ),
("Apia, Samoa" , "APIA", "SAMOA", "AP"),
("Asuncion, Paraguay" , "ASUNC", ),
("Atlanta, Georgia" , "ATLAN", "AT"),
("Baton Rouge, Louisiana" , "BROUG", ),
("Bern, Switzerland" , "SWISS", "SW"),
("Billings, Montana" , "BILLI", ),
("Birmingham, Alabama" , "BIRMI", ),
("Bismarck, North Dakota" , "BISMA", ),
("Bogota, Columbia" , "BOGOT", "BG"),
("Boise, Idaho" , "BOISE", "BO"),
("Boston, Massachusetts" , "BOSTO", ),
("Bountiful, Utah" , "BOUNT", ),
("Brisbane, Australia" , "BRISB", ),
("Buenos Aires, Argentina" , "BAIRE", "BA"),
("Campinas, Brazil" , "CAMPI", ),
("Caracas, Venezuela" , "CARAC", ),
("Cardston, Alberta" , "ALBER", "AL", "ALBR"),
("Cebu, Philippines" , "CEBU", ),
("Chicago, Illinois" , "CHICA", "CH"),
("Ciudad Juarez, Mexico" , "CIUJU", ),
("Cochabamba, Boliva" , "COCHA", ),
("Colonia Juarez, Chihuahua, Mexico" , "COLJU", ),
("Columbia, South Carolina" , "COLSC", ),
("Columbia River, Washington" , "CRIVE", ),
("Columbus, Ohio" , "COLUM", ),
("Copenhagen, Denmark" , "COPEN", ),
("Curitiba, Brazil" , "CURIT", ),
("Dallas, Texas" , "DALLA", "DA"),
("Denver, Colorado" , "DENVE", "DV"),
("Detroit, Michigan" , "DETRO", ),
("Draper, Utah" , "DRAPE", ),
("Edmonton, Alberta" , "EDMON", ),
("Frankfurt, Germany" , "FRANK", "FR"),
("Freiberg, Germany" , "FREIB", "FD"),
("Fresno, California" , "FRESN", ),
("Fukuoka, Japan" , "FUKUO", ),
("Guadalajara, Mexico" , "GUADA", ),
("Guatemala City, Guatemala" , "GUATE", "GA", "GU"),
("Guayaquil, Ecuador" , "GUAYA", "GY"),
("Halifax, Nova Scotia" , "HALIF", ),
("Hamilton, New Zealand" , "NZEAL", "NZ"),
("Harrison, New York" , "HARRI", "NYORK"),
("Hartford, Connecticut" , "HARTF", ),
("Helsinki, Finland" , "HELSI", ),
("Hermosillo, Sonora, Mexico" , "HERMO", ),
("Hong Kong, China" , "HKONG", ),
("Houston, Texas" , "HOUST", ),
("Idaho Falls, Idaho" , "IFALL", "IF"),
("Johannesburg, South Africa" , "JOHAN", "JO"),
("Jordan River, Utah" , "JRIVE", "JR"),
("Kona, Hawaii" , "KONA", ),
("Kiev, Ukraine" , "KIEV", ),
("Kirtland, Ohio" , "KIRTL", ),
("Laie, Hawaii" , "HAWAI", "HA"),
("Las Vegas, Nevada" , "LVEGA", "LV"),
("Lima, Peru" , "LIMA" , "LI"),
("Logan, Utah" , "LOGAN", "LG"),
("London, England" , "LONDO", "LD"),
("Los Angeles, California" , "LANGE", "LA"),
("Louisville, Kentucky" , "LOUIS", ),
("Lubbock, Texas" , "LUBBO", ),
("Madrid, Spain" , "MADRI", ),
("Manhattan, New York" , "MANHA", ),
("Manila, Philippines" , "MANIL", "MA"),
("Manti, Utah" , "MANTI", "MT"),
("Medford, Oregon" , "MEDFO", ),
("Melbourne, Australia" , "MELBO", ),
("Memphis, Tennessee" , "MEMPH", ),
("Merida, Mexico" , "MERID", ),
("Mesa, Arizona" , "ARIZO", "AZ"),
("Mexico City, Mexico" , "MEXIC", "MX"),
("Monterrey, Mexico" , "MONTE", ),
("Montevideo, Uruguay" , "MNTVD", ),
("Monticello, Utah" , "MONTI", ),
("Montreal, Quebec" , "MONTR", ),
("Mt. Timpanogos, Utah" , "MTIMP", ),
("Nashville, Tennessee" , "NASHV", ),
("Nauvoo, Illinois" , "NAUVO", "NV"),
("Nauvoo, Illinois (New)" , "NAUV2", ),
("Newport Beach, California" , "NBEAC", ),
("Nuku'alofa, Tonga" , "NUKUA", "TG"),
("Oakland, California" , "OAKLA", "OK"),
("Oaxaca, Mexico" , "OAXAC", ),
("Ogden, Utah" , "OGDEN", "OG"),
("Oklahoma City, Oklahoma" , "OKLAH", ),
("Oquirrh Mountain, Utah" , "OMOUN", ),
("Orlando, Florida" , "ORLAN", ),
("Palmyra, New York" , "PALMY", ),
("Panama City, Panama" , "PANAM", ),
("Papeete, Tahiti" , "PAPEE", "TA"),
("Perth, Australia" , "PERTH", ),
("Portland, Oregon" , "PORTL", "PT"),
("Porto Alegre, Brazil" , "PALEG", ),
("Preston, England" , "PREST", ),
("Provo, Utah" , "PROVO", "PV"),
("Quetzaltenango, Guatemala" , "QUETZ", ),
("Raleigh, North Carolina" , "RALEI", ),
("Recife, Brazil" , "RECIF", ),
("Redlands, California" , "REDLA", ),
("Regina, Saskatchewan" , "REGIN", ),
("Reno, Nevada" , "RENO", ),
("Rexburg, Idaho" , "REXBU", ),
("Sacramento, California" , "SACRA", ),
("St. George, Utah" , "SGEOR", "SG"),
("St. Louis, Missouri" , "SLOUI", ),
("St. Paul, Minnesota" , "SPMIN", ),
("Salt Lake City, Utah" , "SLAKE", "SL"),
("San Antonio, Texas" , "SANTO", ),
("San Diego, California" , "SDIEG", "SA"),
("San Jose, Costa Rica" , "SJOSE", ),
("Santiago, Chile" , "SANTI", "SN"),
("Santo Domingo, Dominican Republic" , "SDOMI", ),
("Sao Paulo, Brazil" , "SPAUL", "SP"),
("Seattle, Washington" , "SEATT", "SE"),
("Seoul, South Korea" , "SEOUL", "SO"),
("Snowflake, Arizona" , "SNOWF", ),
("Spokane, Washington" , "SPOKA", ),
("Stockholm, Sweden" , "STOCK", "ST"),
("Suva, Fiji" , "SUVA", ),
("Sydney, Australia" , "SYDNE", "SD"),
("Taipei, Taiwan" , "TAIPE", "TP"),
("Tampico, Mexico" , "TAMPI", ),
("Tegucigalpa, Honduras" , "TEGUC", ),
("The Hague, Netherlands" , "HAGUE", ),
("Tokyo, Japan" , "TOKYO", "TK"),
("Toronto, Ontario" , "TORON", "TORNO", "TR"),
("Tuxtla Gutierrez, Mexico" , "TGUTI", ),
("Twin Falls, Idaho" , "TFALL", "TWINF"),
("Vancouver, British Columbia" , "VANCO", ),
("Veracruz, Mexico" , "VERAC", ),
("Vernal, Utah" , "VERNA", ),
("Villahermosa, Mexico" , "VILLA", ),
("Washington, D.C." , "WASHI", "WA"),
("Winter Quarters, Nebraska" , "WINTE", "WQUAR"),
"""
Parses the lds.xml file to build the temple/code maps
"""
# Other places. Not temples.
("Endowment House" , "EHOUS", "EH"),
("President's Office" , "POFFI", "PO"),
("Historian's Office" , "HOFFI", "HO"),
("Other" , "OTHER", ),
)
import const
import os
import logging
temple_codes = {}
for x in temples:
temple_codes[x[0]] = x[1]
from xml.parsers.expat import ParserCreate
from gettext import gettext as _
LOG = logging.getLogger(".")
class LdsTemples:
"""
Parsing class for the LDS temples file
"""
def __init__(self):
"""
Parses the lds.xml file to load the LDS temple code to name
maps
"""
self.__temple_codes = {}
self.__temple_to_abrev = {}
self.__current_temple = ""
self.__tlist = []
lds_filename = os.path.join(const.data_dir, "lds.xml")
try:
xml_file = open(os.path.expanduser(lds_filename))
parser = ParserCreate()
parser.StartElementHandler = self.__start_element
parser.EndElementHandler = self.__end_element
parser.CharacterDataHandler = self.__characters
parser.ParseFile(xml_file)
xml_file.close()
except Exception, msg:
LOG.error(str(msg))
def is_valid_code(self, code):
"""
returns True if the code is a valid LDS temple code according
to the lds.xml file
"""
return self.__temple_to_abrev.get(code) != None
def is_valid_name(self, name):
"""
returns True if the name matches a temple name (not code) in
the lds.xml file
"""
return self.__temple_codes.get(name) != None
def code(self, name):
"""
returns the LDS Temple code that corresponds to the name
"""
return self.__temple_codes.get(name, _("Unknown"))
def name(self, code):
"""
returns the name associated with the LDS Temple code
"""
return self.__temple_to_abrev.get(code, _("Unknown"))
def name_code_data(self):
"""
returns a list of temple codes, temple name tuples
"""
return [ (self.__temple_codes[name], name) \
for name in self.__temple_codes.keys() ]
def __start_element(self, tag, attrs):
"""
XML parsing function that is called when an XML element is first found
"""
self.__tlist = []
if tag == "temple":
self.__current_temple = attrs.get('name')
def __end_element(self, tag):
"""
XML parsing function that is called when an XML element is closed
"""
text = ''.join(self.__tlist)
if tag == "code":
if self.__temple_codes.get(self.__current_temple) == None:
self.__temple_codes[self.__current_temple] = text
self.__temple_to_abrev[text] = self.__current_temple
def __characters(self, data):
"""
XML parsing function that collects text data
"""
self.__tlist.append(data)
Temples = LdsTemples()
temple_to_abrev = {}
for x in temples:
for y in x[1:]:
temple_to_abrev[y] = x[0]

View File

@ -8,6 +8,7 @@ dist_pkgdata_DATA = \
papersize.xml \
system_filters.xml \
tips.xml\
lds.xml\
main1.css\
main2.css\
main3.css\

490
src/data/lds.xml Normal file
View File

@ -0,0 +1,490 @@
<?xml version="1.0" encoding="UTF-8"?>
<temples>
<temple name="Aba, Nigeria">
<code>ABA</code>
</temple>
<temple name="Accra, Ghana">
<code>ACCRA</code>
</temple>
<temple name="Adelaide, Australia">
<code>ADELA</code>
</temple>
<temple name="Albuquerque, New Mexico">
<code>ALBUQ</code>
</temple>
<temple name="Anchorage, Alaska">
<code>ANCHO</code>
</temple>
<temple name="Apia, Samoa">
<code>APIA</code>
<code>SAMOA</code>
<code>AP</code>
</temple>
<temple name="Asuncion, Paraguay">
<code>ASUNC</code>
</temple>
<temple name="Atlanta, Georgia">
<code>ATLAN</code>
<code>AT</code>
</temple>
<temple name="Baton Rouge, Louisiana">
<code>BROUG</code>
</temple>
<temple name="Bern, Switzerland">
<code>SWISS</code>
<code>SW</code>
</temple>
<temple name="Billings, Montana">
<code>BILLI</code>
</temple>
<temple name="Birmingham, Alabama">
<code>BIRMI</code>
</temple>
<temple name="Bismarck, North Dakota">
<code>BISMA</code>
</temple>
<temple name="Bogota, Columbia">
<code>BOGOT</code>
<code>BG</code>
</temple>
<temple name="Boise, Idaho">
<code>BOISE</code>
<code>BO</code>
</temple>
<temple name="Boston, Massachusetts">
<code>BOSTO</code>
</temple>
<temple name="Bountiful, Utah">
<code>BOUNT</code>
</temple>
<temple name="Brisbane, Australia">
<code>BRISB</code>
</temple>
<temple name="Buenos Aires, Argentina">
<code>BAIRE</code>
<code>BA</code>
</temple>
<temple name="Campinas, Brazil">
<code>CAMPI</code>
</temple>
<temple name="Caracas, Venezuela">
<code>CARAC</code>
</temple>
<temple name="Cardston, Alberta">
<code>ALBER</code>
<code>AL</code>
<code>ALBR</code>
</temple>
<temple name="Cebu, Philippines">
<code>CEBU</code>
</temple>
<temple name="Chicago, Illinois">
<code>CHICA</code>
<code>CH</code>
</temple>
<temple name="Ciudad Juarez, Mexico">
<code>CIUJU</code>
</temple>
<temple name="Cochabamba, Boliva">
<code>COCHA</code>
</temple>
<temple name="Colonia Juarez, Chihuahua, Mexico">
<code>COLJU</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbia River, Washington">
<code>CRIVE</code>
</temple>
<temple name="Columbus, Ohio">
<code>COLUM</code>
</temple>
<temple name="Copenhagen, Denmark">
<code>COPEN</code>
</temple>
<temple name="Curitiba, Brazil">
<code>CURIT</code>
</temple>
<temple name="Dallas, Texas">
<code>DALLA</code>
<code>DA</code>
</temple>
<temple name="Denver, Colorado">
<code>DENVE</code>
<code>DV</code>
</temple>
<temple name="Detroit, Michigan">
<code>DETRO</code>
</temple>
<temple name="Draper, Utah">
<code>DRAPE</code>
</temple>
<temple name="Edmonton, Alberta">
<code>EDMON</code>
</temple>
<temple name="Frankfurt, Germany">
<code>FRANK</code>
<code>FR</code>
</temple>
<temple name="Freiberg, Germany">
<code>FREIB</code>
<code>FD</code>
</temple>
<temple name="Fresno, California">
<code>FRESN</code>
</temple>
<temple name="Fukuoka, Japan">
<code>FUKUO</code>
</temple>
<temple name="Guadalajara, Mexico">
<code>GUADA</code>
</temple>
<temple name="Guatemala City, Guatemala">
<code>GUATE</code>
<code>GA</code>
<code>GU</code>
</temple>
<temple name="Guayaquil, Ecuador">
<code>GUAYA</code>
<code>GY</code>
</temple>
<temple name="Halifax, Nova Scotia">
<code>HALIF</code>
</temple>
<temple name="Hamilton, New Zealand">
<code>NZEAL</code>
<code>NZ</code>
</temple>
<temple name="Harrison, New York">
<code>HARRI</code>
<code>NYORK</code>
</temple>
<temple name="Hartford, Connecticut">
<code>HARTF</code>
</temple>
<temple name="Helsinki, Finland">
<code>HELSI</code>
</temple>
<temple name="Hermosillo, Sonora, Mexico">
<code>HERMO</code>
</temple>
<temple name="Hong Kong, China">
<code>HKONG</code>
</temple>
<temple name="Houston, Texas">
<code>HOUST</code>
</temple>
<temple name="Idaho Falls, Idaho">
<code>IFALL</code>
<code>IF</code>
</temple>
<temple name="Johannesburg, South Africa">
<code>JOHAN</code>
<code>JO</code>
</temple>
<temple name="Jordan River, Utah">
<code>JRIVE</code>
<code>JR</code>
</temple>
<temple name="Kona, Hawaii">
<code>KONA</code>
</temple>
<temple name="Kiev, Ukraine">
<code>KIEV</code>
</temple>
<temple name="Kirtland, Ohio">
<code>KIRTL</code>
</temple>
<temple name="Laie, Hawaii">
<code>HAWAI</code>
<code>HA</code>
</temple>
<temple name="Las Vegas, Nevada">
<code>LVEGA</code>
<code>LV</code>
</temple>
<temple name="Lima, Peru">
<code>LIMA</code>
<code>LI</code>
</temple>
<temple name="Logan, Utah">
<code>LOGAN</code>
<code>LG</code>
</temple>
<temple name="London, England">
<code>LONDO</code>
<code>LD</code>
</temple>
<temple name="Los Angeles, California">
<code>LANGE</code>
<code>LA</code>
</temple>
<temple name="Louisville, Kentucky">
<code>LOUIS</code>
</temple>
<temple name="Lubbock, Texas">
<code>LUBBO</code>
</temple>
<temple name="Madrid, Spain">
<code>MADRI</code>
</temple>
<temple name="Manhattan, New York">
<code>MANHA</code>
</temple>
<temple name="Manila, Philippines">
<code>MANIL</code>
<code>MA</code>
</temple>
<temple name="Manti, Utah">
<code>MANTI</code>
<code>MT</code>
</temple>
<temple name="Medford, Oregon">
<code>MEDFO</code>
</temple>
<temple name="Melbourne, Australia">
<code>MELBO</code>
</temple>
<temple name="Memphis, Tennessee">
<code>MEMPH</code>
</temple>
<temple name="Merida, Mexico">
<code>MERID</code>
</temple>
<temple name="Mesa, Arizona">
<code>ARIZO</code>
<code>AZ</code>
</temple>
<temple name="Mexico City, Mexico">
<code>MEXIC</code>
<code>MX</code>
</temple>
<temple name="Monterrey, Mexico">
<code>MONTE</code>
</temple>
<temple name="Montevideo, Uruguay">
<code>MNTVD</code>
</temple>
<temple name="Monticello, Utah">
<code>MONTI</code>
</temple>
<temple name="Montreal, Quebec">
<code>MONTR</code>
</temple>
<temple name="Mt. Timpanogos, Utah">
<code>MTIMP</code>
</temple>
<temple name="Nashville, Tennessee">
<code>NASHV</code>
</temple>
<temple name="Nauvoo, Illinois">
<code>NAUVO</code>
<code>NV</code>
</temple>
<temple name="Nauvoo, Illinois (New)">
<code>NAUV2</code>
</temple>
<temple name="Newport Beach, California">
<code>NBEAC</code>
</temple>
<temple name="Nuku'alofa, Tonga">
<code>NUKUA</code>
<code>TG</code>
</temple>
<temple name="Oakland, California">
<code>OAKLA</code>
<code>OK</code>
</temple>
<temple name="Oaxaca, Mexico">
<code>OAXAC</code>
</temple>
<temple name="Ogden, Utah">
<code>OGDEN</code>
<code>OG</code>
</temple>
<temple name="Oklahoma City, Oklahoma">
<code>OKLAH</code>
</temple>
<temple name="Oquirrh Mountain, Utah">
<code>OMOUN</code>
</temple>
<temple name="Orlando, Florida">
<code>ORLAN</code>
</temple>
<temple name="Palmyra, New York">
<code>PALMY</code>
</temple>
<temple name="Panama City, Panama">
<code>PANAM</code>
</temple>
<temple name="Papeete, Tahiti">
<code>PAPEE</code>
<code>TA</code>
</temple>
<temple name="Perth, Australia">
<code>PERTH</code>
</temple>
<temple name="Portland, Oregon">
<code>PORTL</code>
<code>PT</code>
</temple>
<temple name="Porto Alegre, Brazil">
<code>PALEG</code>
</temple>
<temple name="Preston, England">
<code>PREST</code>
</temple>
<temple name="Provo, Utah">
<code>PROVO</code>
<code>PV</code>
</temple>
<temple name="Quetzaltenango, Guatemala">
<code>QUETZ</code>
</temple>
<temple name="Raleigh, North Carolina">
<code>RALEI</code>
</temple>
<temple name="Recife, Brazil">
<code>RECIF</code>
</temple>
<temple name="Redlands, California">
<code>REDLA</code>
</temple>
<temple name="Regina, Saskatchewan">
<code>REGIN</code>
</temple>
<temple name="Reno, Nevada">
<code>RENO</code>
</temple>
<temple name="Rexburg, Idaho">
<code>REXBU</code>
</temple>
<temple name="Sacramento, California">
<code>SACRA</code>
</temple>
<temple name="St. George, Utah">
<code>SGEOR</code>
<code>SG</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Salt Lake City, Utah">
<code>SLAKE</code>
<code>SL</code>
</temple>
<temple name="San Antonio, Texas">
<code>SANTO</code>
</temple>
<temple name="San Diego, California">
<code>SDIEG</code>
<code>SA</code>
</temple>
<temple name="San Jose, Costa Rica">
<code>SJOSE</code>
</temple>
<temple name="Santiago, Chile">
<code>SANTI</code>
<code>SN</code>
</temple>
<temple name="Santo Domingo, Dominican Republic">
<code>SDOMI</code>
</temple>
<temple name="Sao Paulo, Brazil">
<code>SPAUL</code>
<code>SP</code>
</temple>
<temple name="Seattle, Washington">
<code>SEATT</code>
<code>SE</code>
</temple>
<temple name="Seoul, South Korea">
<code>SEOUL</code>
<code>SO</code>
</temple>
<temple name="Snowflake, Arizona">
<code>SNOWF</code>
</temple>
<temple name="Spokane, Washington">
<code>SPOKA</code>
</temple>
<temple name="Stockholm, Sweden">
<code>STOCK</code>
<code>ST</code>
</temple>
<temple name="Suva, Fiji">
<code>SUVA</code>
</temple>
<temple name="Sydney, Australia">
<code>SYDNE</code>
<code>SD</code>
</temple>
<temple name="Taipei, Taiwan">
<code>TAIPE</code>
<code>TP</code>
</temple>
<temple name="Tampico, Mexico">
<code>TAMPI</code>
</temple>
<temple name="Tegucigalpa, Honduras">
<code>TEGUC</code>
</temple>
<temple name="The Hague, Netherlands">
<code>HAGUE</code>
</temple>
<temple name="Tokyo, Japan">
<code>TOKYO</code>
<code>TK</code>
</temple>
<temple name="Toronto, Ontario">
<code>TORON</code>
<code>TORNO</code>
<code>TR</code>
</temple>
<temple name="Tuxtla Gutierrez, Mexico">
<code>TGUTI</code>
</temple>
<temple name="Twin Falls, Idaho">
<code>TFALL</code>
<code>TWINF</code>
</temple>
<temple name="Vancouver, British Columbia">
<code>VANCO</code>
</temple>
<temple name="Veracruz, Mexico">
<code>VERAC</code>
</temple>
<temple name="Vernal, Utah">
<code>VERNA</code>
</temple>
<temple name="Villahermosa, Mexico">
<code>VILLA</code>
</temple>
<temple name="Washington, D.C.">
<code>WASHI</code>
<code>WA</code>
</temple>
<temple name="Winter Quarters, Nebraska">
<code>WINTE</code>
<code>WQUAR</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="President's Office">
<code>POFFI</code>
<code>PO</code>
</temple>
<temple name="Historian's Office">
<code>HOFFI</code>
<code>HO</code>
</temple>
<temple name="Other">
<code>OTHER</code>
</temple>
</temples>