老地方冰果室交流區

歡迎冰果室讀者在此交流
現在的時間是 10/23/2019 11:33 am

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 10 篇文章 ] 
發表人 內容
文章發表於 : 04/14/2008 1:16 pm 
離線
新生訓練中

註冊時間: 04/14/2008 1:32 am
文章: 8
我是剛開始學Cocoa, 1.請問如何從程式修改GUI string (EX: Button上原本)這些String是我先編輯好( 要放哪?? ) 2. 如要支援多國語言, 讓始用著選擇, 就show不同語言?? 有任何example可參考嗎???


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/14/2008 2:00 pm 
離線
討論區管理員
頭像

註冊時間: 04/19/2001 1:01 am
文章: 7056
來自: The '60s
http://developer.apple.com/zh/

_________________
圖檔


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/14/2008 3:31 pm 
離線
新生訓練中

註冊時間: 04/14/2008 1:32 am
文章: 8
有找過一些網站跟example( http://developer.apple.com/zh/...),但所有程式都是在開發程式時, UI string就先寫好, 是否可先吧strings 編輯好(要放在哪??plist??) 執行程式後在動態load (EX: like VC++ resource, laodstring),
可以給我一些範例or function name我在去查??


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/14/2008 9:07 pm 
離線
基本會員
頭像

註冊時間: 08/19/2004 10:48 pm
文章: 40
mummy 寫:
有找過一些網站跟example( http://developer.apple.com/zh/...),但所有程式都是在開發程式時, UI string就先寫好, 是否可先吧strings 編輯好(要放在哪??plist??) 執行程式後在動態load (EX: like VC++ resource, laodstring),
可以給我一些範例or function name我在去查??

//Header
@interface MyObject: NSObject
{
IBOutlet NSControl* aControl;
}
@end

//.m
@implementation MyObject
- (void)awakeFromNib
{
if(aControl)
[aControl setTitle:@"myString"];
}

大概是像這樣...要設Button或Control的字串,請找setTitle or setString or setStringValue.
要從resource 讀字串,請找NSBundle
若是要從檔案讀字串, NSStream, NSFileHandle, NSFileManager都會是你的方向,甚至最簡單的,去查 NSData.
做法百百種,你可能要對自己的問題描述的更清楚一點.


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/15/2008 10:33 am 
離線
新生訓練中

註冊時間: 04/14/2008 1:32 am
文章: 8
thank, 因找了好幾天, 還是沒概念 >_<

因開發Application 都支援多國語言(ex: English, Simplifeied Chinese, Tranditional Chinese, Japanse....),且始用的人自己選擇要使用什麼語言,可隨時更換, 而不用跟著OS, 所以想要事先編輯好多國字串...
1. 是不是要建所有語言 .lproj (?? English.lproj, zh_TW.lproj....)
2. 是不是要從 .lproj load string?? 要如何load??


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/15/2008 11:05 am 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
mummy 寫:
thank, 因找了好幾天, 還是沒概念 >_<

因開發Application 都支援多國語言(ex: English, Simplifeied Chinese, Tranditional Chinese, Japanse....),且始用的人自己選擇要使用什麼語言,可隨時更換, 而不用跟著OS, 所以想要事先編輯好多國字串...
1. 是不是要建所有語言 .lproj (?? English.lproj, zh_TW.lproj....)
2. 是不是要從 .lproj load string?? 要如何load??


沒錯,您說的完全正確!

例如:
File "xxx.m"

[panel setTitle:[[NSBundle mainBundle] localizedStringForKey:@"chooseFile"
value:@"Choose project file"
table:@"InfoPlist"]];


File "infoPlist.strings"

"chooseFile" = "拜託您,請選擇檔案 !"
:D

_________________
I love OPERA !


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/15/2008 4:59 pm 
離線
新生訓練中

註冊時間: 04/14/2008 1:32 am
文章: 8
真是多謝, 有個方向, 就較容易查詢, 讀了NSBundle...
不過還是有點不等懂 .nib
我如要支援6種語言 不就要建6個(.nib and .strings)然後去編輯每個.nib??
還是有其他方法?? 建6個.nib,好像不太對?
有什麼範例可參考嗎?


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/15/2008 5:21 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1530
來自: 新竹
您只要建好一種語言的 nib/.strings file 就可以了,
以後可以在這個 nib/.strings file 的 info 視窗去 add localization 其他語言的 nib file 以及 .strings file,
然後到各個語言的 .nib/.strings file 去修改每一個 string 成為該語言的 string

各種語言的 String 當然要您自己去添加囉,
XCODE 又不是翻譯機,他怎麼知道您在其他語言相對映的 string 是什麼東東啊!

_________________
I love OPERA !


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/15/2008 6:00 pm 
離線
基本會員
頭像

註冊時間: 08/19/2004 10:48 pm
文章: 40
mummy 寫:
真是多謝, 有個方向, 就較容易查詢, 讀了NSBundle...
不過還是有點不等懂 .nib
我如要支援6種語言 不就要建6個(.nib and .strings)然後去編輯每個.nib??
還是有其他方法?? 建6個.nib,好像不太對?
有什麼範例可參考嗎?

你的需求既然是多語系的話,除了NSBundle之外,你還需要一些其他的幫助。
建議你以localization為關鍵字,去查詢一下ADC,相信會有不錯的收獲。


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 04/16/2008 4:12 pm 
離線
新生訓練中

註冊時間: 04/14/2008 1:32 am
文章: 8
不好意思, 我又來發問

順利建好多個 .lproj
( ex: en.lproj => main.nib InfoPlist.strings
fr.lproj => main.nib InfoPlist.strings
.......
)

但當始用的人, 選擇要使用什麼語言,要如何可隨時更換 GUI and String(ex: en->fr), 查了NSLocate (Available in Mac OS X v10.4 and later.)好像有function可用(setLocale),可是只支援 OS x v10.4, 我要用什麼funtion 才可用在(OS X 10.1.2 and later) 隨時更換 GUI and String


回頂端
 個人資料  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 10 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
POWERED_BY
正體中文語系由 竹貓星球 維護製作