您在這裡

Drupal 8 這個 bug report 也許你該知道

amouro's 的頭像
amouro 在 2013-06-26 (三) 23:58 發表

JohnAlbin 在今天晚上發出了訊息請大家幫忙來檢驗一下這個 Drupal 8 的 bug!
https://drupal.org/node/1938892#comment-7581225

為了讓使用 CountryManager.php API 產生國家地區名稱的程式能夠更容易理解,大量的修正了以 ISO 3661-1 的國家名稱,
特別是其中 ISO 3661-1 一直以來的 Taiwan, Province of China 的問題。甚至提出了許多佐證的觀點,強調移除不正確的 Province of China 的重要性與原因。

Twitter

若是心有餘力,歡迎幫忙 review,當然還有更多的 Drupal 8 issue 也都值得大家一起貢獻。
https://drupal.org/project/issues/drupal?text=&status=Open&priorities=Al...

John 是重要的 Drupal 核心貢獻者,
在今年的 DrupalCamp Taipei 2013 也會來分享 Drupal 8 的近況,並聚焦在 Twig 及 Mobile 這兩塊改變。
講題是: Drupal 8 rocks! (But our CSS & HTML sucks.)

附加檔案大小
Image icon Review_TW.png76.52 KB

這個問題大了,相關的還有 ISO 3166。
我剛剛去 wiki 查 ISO 3166 相關的資料,我把 wiki 上面記載的相關資料轉在下面:

Taiwan is listed as "Taiwan, Province of China" because of its political status within the United Nations: The UN does not recognize the Republic of China which governs Taiwan and considers the territory to be part of the People's Republic of China. In 2007, the Republic of China filed a lawsuit before a Swiss civil court against the ISO, arguing that the ISO's use of the UN name rather than "Republic of China (Taiwan)" violates Taiwan's name rights. On 9 September 2010, a panel of the Federal Supreme Court of Switzerland decided, by three votes to two, to dismiss the suit as presenting a political question not subject to Swiss civil jurisdiction.

簡單講,因為聯合國拒絕承認中華民國統治台灣,而 ISO 名稱的爭議台灣在 2007 年提出訴訟,但因為瑞士法院不願意介入政治紛爭而把訴訟駁回。
這件事變成了文件上的既成事實。

中文版的 wiki 把這件事情輕輕帶過,只在備註欄這樣記載:
所用英文名稱系依據國際標準化組織之稱呼所示。台灣的國際政治地位可參見未被國際普遍承認的國家列表、台海現狀以及舊金山條約。

備註:中華民國是台灣在聯合國的正式名稱,但目前地位被中華人民共和國所繼承,而在台灣的政府並不被聯合國視為正式的國家政府。

John 後來在那個 issue 中有回應我的說法,並提出為什麼會有這個 issue 的原因。
John 的說法我轉在下面:

But that just highlights why Drupal using the Debian data source is so perverse. As of right now, Drupal core says "fix this problem in the upstream Debian code". Debian says "we just use the ISO standard. we won't fork the standard.". The ISO says "take it up with the UN". But, the government of Taiwan can't enter the UN and can't sue the ISO. So…

簡單講,原因是因為這個列表是用 Debian 的資料,而 Debian 是用 ISO 的資料,然後 ISO 是用聯合國的資料,而台灣不是聯合國的會員國,所以這個列表就變成現在這個麻煩的議題~

說實話,我覺得要切斷這個引用資料責任鍊蠻困難的,所以我後來又回應說,那是不是可以給我們一個 hook function,讓我們可以寫一個模組去修正這個列表?
我用的理由是:在台灣要做政府的標案,國家名稱必須是 "Taiwan" 或 "Republic of china"

至少希望能爭取到一個備案的解決方法~

目前有回應,已經有一個 hook function: hook_countries_alter() 可以做到這件事。
不過本站站長 James 也提出說 hook function 並不是修正這個 issue 的好方法~
他的說法如下:

I don't think hook function is a good way to fix it.
That's just make a lot of modules to fix the list for they own country.

Now we already got a patch here, why just make it better?

剛剛跟 Jenny 談過這件事,這件事本質上是 Drupal 要把 Country List Provider 換成 CLDR 的資料。
這件事情在 Drupal 官方目前並還沒有最終敲定,我們能幫忙的就是去做 Review。
CLDR 的這份資料目前最新的版本是寫 Taiwan 沒問題,而每年的 Q1 跟 Q3 會更新一次。
今年 Q3 的 CLDR Release 的表定時間是在 9 月 15 日。

目前我們最重要的是讓 John 的 Patch 能夠進入到 Drupal 8 Release 的階段.

CLDR 會影響到的組織有:

  • Apple (OS X & applications; iOS for iPhone, iPad, iPod touch; Safari for Windows; Apple Mobile Device Support in iTunes for Windows; …)
  • Google (Web Search, Chrome, Android, Adwords, Google+, Google Maps, Blogger, Google Analytics, …)
  • IBM (DB2, Lotus, Websphere, Tivoli, Rational, AIX, i/OS, z/OS,…)
  • and many others, including:ABAS Software, Adobe, Amazon (Kindle), Amdocs, Apache, Appian, Argonne National Laboratory, Avaya, BAE Systems Geospatial eXploitation Products, BEA, BluePhoenix Solutions, BMC Software, Boost, BroadJump, Business Objects, caris, CERN, Debian Linux, Dell, Eclipse, eBay, EMC Corporation, ESRI, Firebird RDBMS, Free BSD, Gentoo Linux, GroundWork Open Source, GTK+, Harman/Becker Automotive Systems GmbH, HP, Hyperion, Inktomi, Innodata Isogen, Informatica, Intel, Interlogics, IONA, IXOS, Jikes, Library of Congress, Mathworks, Mozilla, Netezza, OpenOffice, Oracle (Solaris, Java), Lawson Software, Leica Geosystems GIS & Mapping LLC, Mandrake Linux, OCLC, Progress Software, Python, QNX, Rogue Wave, SAP, SIL, SPSS, Software AG, SuSE, Symantec, Teradata (NCR), ToolAware, Trend Micro, Virage, webMethods, Wine, WMS Gaming, XyEnterprise, Yahoo!

除此之外,CLDR 還會影響到一些重要的函式庫,例如:ICU (PHP 的 Unicode 函式庫就是用這個), Closure, or TwitterCLD

最簡單的方式就是直接推 John 的 Patch ,以整批的做法把 Taiwan 更新進去。
也避免過度的政治情感,讓他在 code issue 裡就解決掉。
最主要的理念是,當這個選單出現的時候,顯示的是使用者認得自己的國家名字,而非國際上到底官方標準的名字。

我也不想看到 POC 出現....但是大家要沉著以對