Activity bundles/lang-ko: Difference between revisions
(New page: {{OLPC}} {{Translation | lang = ko | source = Activity bundles| version = 41791}} == 소개== 슈가 환경에서 모든 액티비티는 자기 포함 self-contained '''번들'''...) |
No edit summary |
||
Line 1: | Line 1: | ||
ricerletole |
|||
{{OLPC}} |
{{OLPC}} |
||
{{Translation | lang = ko | source = Activity bundles| version = 41791}} |
{{Translation | lang = ko | source = Activity bundles| version = 41791}} |
||
== |
== ìê°== |
||
[[Sugar|ìê°]] íê²½ìì 모ë ì¡í°ë¹í°ë ì기 í¬í¨ self-contained '''ë²ë¤'''ë¡ í¬ì¥ (í¨í¤ì§)ë©ëë¤. ë²ë¤ì í´ë¹ ì¡í°ë¹í°ê° ì¤íì íìí ììê³¼ ì¤íê°ë¥í ì½ë (ìì¤í
ì´ ì ê³µíë 기본 ë¼ì´ë²ë¬ë¦¬ ì¸)를 í¬í¨í©ëë¤. 기본 ìì¤í
ì´ ì ê³µíì§ ìë 모ë ììê³¼ ì¤íê°ë¥í ì½ëë í´ë¹ ë²ë¤ ë´ì í¨í¤ì§ëì´ì¼ í©ëë¤. |
|||
[[Sugar|슈가]] 환경에서 모든 액티비티는 자기 포함 self-contained '''번들'''로 포장 (패키지)됩니다. 번들은 해당 액티비티가 실행에 필요한 자원과 실행가능한 코드 (시스템이 제공하는 기본 라이버러리 외)를 포함합니다. 기본 시스템이 제공하지 않는 모든 자원과 실행가능한 코드는 해당 번들 내에 패키지되어야 합니다. |
|||
; |
;참조: ì¼ë° ì¬íì [[OLPC Bitfrost|OLPC ë¹í¸íë¡ì¤í¸]]ê³¼ [[OLPC Bitfrost#Software installation|ìíí¸ì¨ì´ ì¤ì¹]] ì¹ì
ì 참조 |
||
== |
== ì´ì == |
||
ì¡í°ë¹í°ë ì´ë¦°ì´ë¤ ì¬ì´ì ê³µì ëëë¡ ìëë©ëë¤. ì´ë¤ ì´ë¦°ì´ìê² í¹ì ì¡í°ë¹í°ê° ìë¤ë©´, ê·¸ê²ì ê·¸ ëë ê·¸ë
ê° ê³µì ì¡í°ë¹í°ì ì°¸ì¬í ë í´ë¹ ì´ë¦°ì´ìê² ìëì ì¼ë¡ ì´ì ë©ëë¤. ì기 í¬í¨ self-contained ìì ì¡í°ë¹í°ë¤ì í¨í¤ì§í¨ì¼ë¡ì¨, ê³µì , ì¤ì¹, ì ê±°, ë° ë°±ì
ì ì½ê² ìíí ì ììµëë¤. |
|||
액티비티는 어린이들 사이에 공유되도록 의도됩니다. 어떤 어린이에게 특정 액티비티가 없다면, 그것은 그 또는 그녀가 공유 액티비티에 참여할 때 해당 어린이에게 자동적으로 이전됩니다. 자기 포함 self-contained 속에 액티비티들을 패키지함으로써, 공유, 설치, 제거, 및 백업을 쉽게 수행할 수 있습니다. |
|||
== |
== ìì¹ == |
||
ì¡í°ë¹í°ë ì¬ì©ì íëì ëìíì¬ [[Sugar|ìê°]]ì ìí´ ìëì ì¼ë¡ ì¤ì¹ ë° ì ê±°ë©ëë¤. ìê°ë ì¤ì¤ë¡ ì íí ëë í 리 ë´ì ì¡í°ë¹í°ë¤ì ìì¹ìí¤ë©°, ì¡í°ë¹í°ë í¹ì ìì¹ì ì¤ì¹ë ê²ì 기ëí ì ìê³ , ê²½ë¡ê° íìí ê²½ì° ìë ê²½ë¡ë¥¼ ì´ì©í´ì¼ í©ëë¤ (ê°ë ¹, ê³µì ë ë¼ì´ë²ë¬ë¦¬ ë§í¤ì§ì ê²½ì°, ì´ë¯¸ì§, ì¬ì´ë ë±ì ì¡í°ë¹í° 리ìì¤). ëí, í´ë¹ ë²ë¤ì ë² ì´ì¤ ëë í 리 ì´ë¦ì´ ê³ì ëì¼í ê²ì¼ë¡ 기ëí´ìë ìë©ëë¤. ìê°ë ë²ë¤ 충ëì ë§ê¸° ìí´ ì¸ì ë¼ë ì¡í°ë¹í° ë²ë¤ ë² ì´ì¤ ëë í 리ì ì´ë¦ì ë°ê¿ ì ììµëë¤. |
|||
액티비티는 사용자 행동에 대응하여 [[Sugar|슈가]]에 의해 자동적으로 설치 및 제거됩니다. 슈가는 스스로 선택한 디렉토리 내에 액티비티들을 위치시키며, 액티비티는 특정 위치에 설치될 것을 기대할 수 없고, 경로가 필요한 경우 상대 경로를 이용해야 합니다 (가령, 공유된 라이버러리 링키지의 경우, 이미지, 사운드 등의 액티비티 리소스). 또한, 해당 번들의 베이스 디렉토리 이름이 계속 동일할 것으로 기대해서도 안됩니다. 슈가는 번들 충돌을 막기 위해 언제라도 액티비티 번들 베이스 디렉토리의 이름을 바꿀 수 있습니다. |
|||
íì¬ jhbuild ìê°ë XDG_DATA_DIRSì "ì¡í°ë¹í°" ìë¸í´ëìì ë²ë¤ì ì°¾ìµëë¤. íì¬ë jhbuild ë¹ë í´ëì /usr/share/activities and the usr/share/activities ìë¸í´ëì
ëë¤. |
|||
ìê°ë í´ë¹ ì¡í°ë¹í°ê° ì¤ì¹ ëë ì ê±°ë ë, D-Bus ìë¹ì¤ íì±í를 íµí´, í´ë¹ ì¡í°ë¹í°ë¥¼ ìëíëë° íìí .service íì¼ì ìëì ì¼ë¡ ìì± ë° ì ê±°í©ëë¤. |
|||
슈가는 해당 액티비티가 설치 또는 제거될 때, D-Bus 서비스 활성화를 통해, 해당 액티비티를 시동하는데 필요한 .service 파일을 자동적으로 생성 및 제거합니다. |
|||
ì¡í°ë¹í°ë í´ë¹ ì¡í°ë¹í° ë²ë¤ ê·¸ ìì²´ ìì ë¡ì»¬ ì¤í
ì´í¸ ëë íë í¼ë°ì¤ë¥¼ ê²°ì½ ì ì¥í´ìë ìë©ëë¤. ì´ê²ë¤ì SUGAR_PROFILE íê²½ ë³ì를 íµí´ ê°ì©í, ì¬ì©ìì ìê° íë¡íì¼ ë´ ì¡í°ë¹í°-í¹ì ëë í 리ì íì ì ì¥ëì´ì¼ í©ëë¤. |
|||
액티비티는 해당 액티비티 번들 그 자체 속에 로컬 스테이트 또는 프레퍼런스를 결코 저장해서는 안됩니다. 이것들은 SUGAR_PROFILE 환경 변수를 통해 가용한, 사용자의 슈가 프로파일 내 액티비티-특정 디렉토리에 항상 저장되어야 합니다. |
|||
íì´ì ê°ë°ìë ìëì ê°ì´ íë¡íì¼ í´ë를 ì»ì ìë ììµëë¤: |
|||
파이선 개발자는 아래와 같이 프로파일 폴더를 얻을 수도 있습니다: |
|||
import sugar.env |
import sugar.env |
||
profile_path = sugar.env.get_profile_path() |
profile_path = sugar.env.get_profile_path() |
||
== |
== ë²ë¤ 구조 == |
||
ì¡í°ë¹í° ë²ë¤ì ëë í 리ì´ë©°, ".activity"ë¡ ëëë ì´ë¦ì ê°ì§ëë¤. ê° ì¡í°ë¹í° ë²ë¤ì, 'activity'ë¡ ë¶ë¦¬ë ìë¸ ëë í 리 ë´ìì, "activity.info" íì¼ê³¼ ìëì í¹ì í í¬ë§·ì ê°ì ¸ì¼ë§ í©ëë¤. ê°ë ¹: |
|||
액티비티 번들은 디렉토리이며, ".activity"로 끝나는 이름을 가집니다. 각 액티비티 번들은, 'activity'로 불리든 서브 디렉토리 내에서, "activity.info" 파일과 아래의 특정한 포맷을 가져야만 합니다. 가령: |
|||
Web.activity/ |
Web.activity/ |
||
locale/ |
locale/ |
||
Line 34: | Line 35: | ||
icons/ |
icons/ |
||
; ì¡í°ë¹í° |
|||
; 액티비티 |
|||
All metadata about the activity is organized in this subdirectory. |
All metadata about the activity is organized in this subdirectory. |
||
í´ë¹ ì¡í°ë¹í°ì ê´í 모ë ë©íë°ì´í°ë ì´ ìë¸ëë í 리ì ì¡°ì§ë©ëë¤. |
|||
해당 액티비티에 관한 모든 메타데이터는 이 서브디렉토리에 조직됩니다. |
|||
; ìì´ì½ |
|||
; 아이콘 |
|||
í´ë¹ ì¡í°ë¹í°ì ìí´ ì´ì©ëë ìì´ì½ì í¬í¨í©ëë¤. ìê°.ì¡í°ë¹í° íì´ì í¨í¤ì§ë¥¼ ì´ì©í ë, ê·¸ ê²½ë¡ë ìëì ì¼ë¡ ëí¨í¸ [http://www.pygtk.org/docs/pygtk/class-gtkicontheme.html gtk icon theme]ì ì¶ê°ë©ëë¤. |
|||
== .info |
== .info íì¼ í¬ë§· == |
||
.info |
.info íì¼ì key/value pair í¬ë§·ì ë°ë¥´ëë°, [http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec fd.o desktop entry spec]ì ì ì¬íì§ë§, ì¼ì¹íì§ë ììµëë¤. ìë¡ì¨: |
||
[Activity] |
[Activity] |
||
Line 52: | Line 53: | ||
mime_types = application/pdf;image/tiff |
mime_types = application/pdf;image/tiff |
||
ì í¨í íë¼í¼í°ì ìì¸í ì¤ëª
ì: |
|||
유효한 프라퍼티의 자세한 설명은: |
|||
[Activity] |
[Activity] |
||
: activity.info íì¼ì [Activity]ë¡ ììí´ì¼ë§ íë©°, íì¼ì 첫ë²ì§¸ ë¼ì¸ì ìì¹í´ì¼ í©ëë¤. |
|||
: activity.info 파일은 [Activity]로 시작해야만 하며, 파일의 첫번째 라인에 위치해야 합니다. |
|||
name = Web |
name = Web |
||
: ì´ ê²ì ìê°ê° í´ë¹ ì¡í°ë¹í°ë¥¼ ì¸ê¸í ë íìëë ì´ë¦ì
ëë¤. ê´í¸ ì¸ì´ ì½ëê° ìë 'name' í¤ë í´ë¹ ì¡í°ë¹í°ì "en_US" ì§ìí ì´ë¦ì
ëë¤. activity.info íì¼ì ì´ í¤ë¥¼ ê°ì ¸ì¼ë§ í©ëë¤. |
|||
: 이 것은 슈가가 해당 액티비티를 언급할 때 표시되는 이름입니다. 괄호 언어 코드가 없는 'name' 키는 해당 액티비티의 "en_US" 지역화 이름입니다. activity.info 파일은 이 키를 가져야만 합니다. |
|||
activity_version = 1 |
activity_version = 1 |
||
: ê° activity.info íì¼ì "activity_version" í¤ë¥¼ ê°ì ¸ì¼ í©ëë¤. ì´ ë²ì ì ë¨ì¼ ìì ì ìì´ë©°, 1~9 ì¬ì´ì 문ì를 ê°ì§ ìë§ ììµëë¤. ë³´ë¤ í° ë²ì ì "newer"ë¡ ê°ì£¼ë©ëë¤. ì´ í¤ì í ë¹ë ê°ì í´ë¹ ì¡í°ë¹í°ì ëí´ '''opaque'''ë¡ ê°ì£¼ë©ëë¤; ì´ ì¡í°ë¹í°ì ì ì¼í ì구ë ìë¡ì´ ì¡í°ë¹í° ë¹ëê° ë°ëì ë ì»¤ì¼ íë¤ë ì ì´ë¹ë¤. |
|||
: 각 activity.info 파일은 "activity_version" 키를 가져야 합니다. 이 버전은 단일 양의 정수이며, 1~9 사이의 문자를 가질 수만 있습니다. 보다 큰 버전은 "newer"로 간주됩니다. 이 키에 할당된 값은 해당 액티비티에 대해 '''opaque'''로 간주됩니다; 이 액티비티의 유일한 요구는 새로운 액티비티 빌드가 반드시 더 커야 한다는 점이빈다. |
|||
host_version = 1 |
host_version = 1 |
||
Line 80: | Line 81: | ||
show_launcher = yes |
show_launcher = yes |
||
: ì´ í¤ë ì íì ì
ëë¤. ìê±°ë, "yes" ê°ì ê°ì§ë©´, í´ë¹ ì¡í°ë¹í°ë [[Sugar|ìê°]] í¨ë ë¡ ì² ë´ì ê·¸ ìì ì ìì´ì½ì¼ë¡ íìëë©°, ì í¨í 'icon' key/value pairê° ì구ë©ëë¤. "no" ê°ì´ ëª
ìëë©´, í´ë¹ ì¡í°ë¹í°ë |
|||
: 이 키는 선택적입니다. 없거나, "yes" 값을 가지면, 해당 액티비티는 [[Sugar|슈가]] 패널 론처 내에 그 자신의 아이콘으로 표시되며, 유효한 'icon' key/value pair가 요구됩니다. "no" 값이 명시되면, 해당 액티비티는 |
|||
[[Sugar|ìê°]] í¨ë ë¡ ì² ë´ì ëíëì§ ìì¼ë©°, 'icon' ê° ì구ëì§ ììµëë¤. |
|||
[[Sugar|슈가]] 패널 론처 내에 나타나지 않으며, 'icon' 가 요구되지 않습니다. |
|||
== ì¡í°ë¹í° ì´ë¦ ë¡ì»¬ë¦¬ì ì´ì
/ë²ì == |
|||
== 액티비티 이름 로컬리제이션/번역 == |
|||
ì§ìíë ë°ì´í°ë ì§ì ëë í 리ì ììµëë¤. ê° ì¸ì´ë í´ë¹ ì¸ì´ì ISO ì½ëì ë°ë¼ ëª
ëª
ë <u>separate</u> ëë í 리 ë´ì ìì ì ì§ìí í¤ë¥¼ ë³´ê´í©ëë¤. 'activity.info' íì¼ë¡ë¶í°ì ì§ìí í¤ë ê·¸ ëë í 리ì 'activity.linfo' íì¼ì ë³´ê´ë©ëë¤. ê°ë ¹, ë
ì¼-ì§ìí ë
ì¼ì´ (ì¤ìì¤-ì§ìí ë
ì¼ì´ì ë¹êµí´ì) ë²ìì 'de_DE/activity.linfo' íì¼ì ë³´ê´ë©ëë¤. |
|||
지역화된 데이터는 지역 디렉토리에 있습니다. 각 언어는 해당 언어의 ISO 코드에 따라 명명된 <u>separate</u> 디렉토리 내에 자신의 지역화 키를 보관합니다. 'activity.info' 파일로부터의 지역화 키는 그 디렉토리의 'activity.linfo' 파일에 보관됩니다. 가령, 독일-지역화 독일어 (스위스-지역화 독일어와 비교해서) 번역은 'de_DE/activity.linfo' 파일에 보관됩니다. |
|||
Example.activity/ |
Example.activity/ |
||
Line 103: | Line 104: | ||
Keys in the languague-specific '.linfo' files selectively override keys from the 'activity.info' file; if a key is not present in the '.linfo' file the value from the 'activity.info' file is used instead. |
Keys in the languague-specific '.linfo' files selectively override keys from the 'activity.info' file; if a key is not present in the '.linfo' file the value from the 'activity.info' file is used instead. |
||
== |
== í¨í¤ì§== |
||
ì¡í°ë¹í° ë²ë¤ì ".xo" ìµì¤í
ì
ì´ ìë ì§ íì¼ë¡ í¨í¤ì§ëì´ì¼ í©ëë¤. |
|||
액티비티 번들은 ".xo" 익스텐션이 있는 짚 파일로 패키지되어야 합니다. |
|||
== 기í 기ì ë¹êµ == |
|||
== 기타 기술 비교 == |
|||
ì¡í°ë¹í° ë²ë¤ì OS X ë²ë¤ ëë ìë° JAR íì¼ê³¼ ì ì¬í©ëë¤; ë
립ì ì¼ë¡ ì´ë ê°ë¥í ë¨ì¼ ëë í 리 ë´ì ê·íê° íìë¡ íë 모ë ê²ì 캡ìííë ë¨ìí 매커ëì¦. |
|||
액티비티 번들은 OS X 번들 또는 자바 JAR 파일과 유사합니다; 독립적으로 이동 가능한 단일 디렉토리 내에 귀하가 필요로 하는 모든 것을 캡슐화하는 단순한 매커니즘. |
|||
ì¤í í¨í¤ì§ autopackageìë ë¤ë¥¸ë°, ì´ê²ì í¨í¤ì§ ê´ë¦¬ ìì¤í
ì´ ìëëë¤. ì¤ì ë°ì´í°ë² ì´ì¤ë ìê³ , install/uninstallìì ì¤íëë ì¤í¬ë¦½í¸ë ììµëë¤. ëí í¹ì í íì¼ í¬ë§·ë ììµëë¤. |
|||
오토패키지 autopackage와는 다른데, 이것은 패키지 관리 시스템이 아닙니다. 중앙 데이터베이스도 없고, install/uninstall에서 실행되는 스크립트도 없습니다. 또한 특정한 파일 포맷도 없습니다. |
|||
klikê³¼ ë¹êµí ë, í´ë¹ í¨í¤ì§ ë´ì ë¡ì»¬ ì ëì¤ ëë í 리 구조를 ë³µì íë ¤ë ìëê° ìëëë¤; í´ë¹ ì¡í°ë¹í°ë ì¬ì í ìì¤í
ì´ ì ê³µíë ë°ì´ë리 ë±ì ë§í¬ë©ëë¤. ìí¤ë¸ë¥¼ ìì¶íì¬ ë¤í¸ìí¬ë¡ ë³´ë´ë ê² ì¸ìë ìë² ì¬ì´ë ì»´í¬ëí¸ë ìì¼ë©°, ì¡í°ë¹í°ë¤ì´ ì기 í¬í¨ self-containedëë¯ë¡, ëíëì ì²´í¹ë ììµëë¤. |
|||
klik과 비교할 때, 해당 패키지 내에 로컬 유닉스 디렉토리 구조를 복제하려는 의도가 아닙니다; 해당 액티비티는 여전히 시스템이 제공하는 바이너리 등에 링크됩니다. 아키브를 압축하여 네트워크로 보내는 것 외에는 서버 사이드 컴포넌트도 없으며, 액티비티들이 자기 포함 self-contained되므로, 디펜던시 체킹도 없습니다. |
|||
[[Category:API]] |
[[Category:API]] |
||
[[Category:Sugar]] |
[[Category:Sugar]] |
Revision as of 19:09, 6 November 2007
ricerletole
ìê°
ìê° íê²½ìì 모ë ì¡í°ë¹í°ë ì기 í¬í¨ self-contained ë²ë¤ë¡ í¬ì¥ (í¨í¤ì§)ë©ëë¤. ë²ë¤ì í´ë¹ ì¡í°ë¹í°ê° ì¤íì íìí ììê³¼ ì¤íê°ë¥í ì½ë (ìì¤í ì´ ì ê³µíë 기본 ë¼ì´ë²ë¬ë¦¬ ì¸)를 í¬í¨í©ëë¤. 기본 ìì¤í ì´ ì ê³µíì§ ìë 모ë ììê³¼ ì¤íê°ë¥í ì½ëë í´ë¹ ë²ë¤ ë´ì í¨í¤ì§ëì´ì¼ í©ëë¤.
- 참조
- ì¼ë° ì¬íì OLPC ë¹í¸íë¡ì¤í¸ê³¼ ìíí¸ì¨ì´ ì¤ì¹ ì¹ì ì 참조
ì´ì
ì¡í°ë¹í°ë ì´ë¦°ì´ë¤ ì¬ì´ì ê³µì ëëë¡ ìëë©ëë¤. ì´ë¤ ì´ë¦°ì´ìê² í¹ì ì¡í°ë¹í°ê° ìë¤ë©´, ê·¸ê²ì ê·¸ ëë ê·¸ë ê° ê³µì ì¡í°ë¹í°ì ì°¸ì¬í ë í´ë¹ ì´ë¦°ì´ìê² ìëì ì¼ë¡ ì´ì ë©ëë¤. ì기 í¬í¨ self-contained ìì ì¡í°ë¹í°ë¤ì í¨í¤ì§í¨ì¼ë¡ì¨, ê³µì , ì¤ì¹, ì ê±°, ë° ë°±ì ì ì½ê² ìíí ì ììµëë¤.
ìì¹
ì¡í°ë¹í°ë ì¬ì©ì íëì ëìíì¬ ìê°ì ìí´ ìëì ì¼ë¡ ì¤ì¹ ë° ì ê±°ë©ëë¤. ìê°ë ì¤ì¤ë¡ ì íí ëë í 리 ë´ì ì¡í°ë¹í°ë¤ì ìì¹ìí¤ë©°, ì¡í°ë¹í°ë í¹ì ìì¹ì ì¤ì¹ë ê²ì 기ëí ì ìê³ , ê²½ë¡ê° íìí ê²½ì° ìë ê²½ë¡ë¥¼ ì´ì©í´ì¼ í©ëë¤ (ê°ë ¹, ê³µì ë ë¼ì´ë²ë¬ë¦¬ ë§í¤ì§ì ê²½ì°, ì´ë¯¸ì§, ì¬ì´ë ë±ì ì¡í°ë¹í° 리ìì¤). ëí, í´ë¹ ë²ë¤ì ë² ì´ì¤ ëë í 리 ì´ë¦ì´ ê³ì ëì¼í ê²ì¼ë¡ 기ëí´ìë ìë©ëë¤. ìê°ë ë²ë¤ 충ëì ë§ê¸° ìí´ ì¸ì ë¼ë ì¡í°ë¹í° ë²ë¤ ë² ì´ì¤ ëë í 리ì ì´ë¦ì ë°ê¿ ì ììµëë¤.
íì¬ jhbuild ìê°ë XDG_DATA_DIRSì "ì¡í°ë¹í°" ìë¸í´ëìì ë²ë¤ì ì°¾ìµëë¤. íì¬ë jhbuild ë¹ë í´ëì /usr/share/activities and the usr/share/activities ìë¸í´ëì ëë¤.
ìê°ë í´ë¹ ì¡í°ë¹í°ê° ì¤ì¹ ëë ì ê±°ë ë, D-Bus ìë¹ì¤ íì±í를 íµí´, í´ë¹ ì¡í°ë¹í°ë¥¼ ìëíëë° íìí .service íì¼ì ìëì ì¼ë¡ ìì± ë° ì ê±°í©ëë¤.
ì¡í°ë¹í°ë í´ë¹ ì¡í°ë¹í° ë²ë¤ ê·¸ ìì²´ ìì ë¡ì»¬ ì¤í ì´í¸ ëë íë í¼ë°ì¤ë¥¼ ê²°ì½ ì ì¥í´ìë ìë©ëë¤. ì´ê²ë¤ì SUGAR_PROFILE íê²½ ë³ì를 íµí´ ê°ì©í, ì¬ì©ìì ìê° íë¡íì¼ ë´ ì¡í°ë¹í°-í¹ì ëë í 리ì íì ì ì¥ëì´ì¼ í©ëë¤.
íì´ì ê°ë°ìë ìëì ê°ì´ íë¡íì¼ í´ë를 ì»ì ìë ììµëë¤:
import sugar.env profile_path = sugar.env.get_profile_path()
ë²ë¤ 구조
ì¡í°ë¹í° ë²ë¤ì ëë í 리ì´ë©°, ".activity"ë¡ ëëë ì´ë¦ì ê°ì§ëë¤. ê° ì¡í°ë¹í° ë²ë¤ì, 'activity'ë¡ ë¶ë¦¬ë ìë¸ ëë í 리 ë´ìì, "activity.info" íì¼ê³¼ ìëì í¹ì í í¬ë§·ì ê°ì ¸ì¼ë§ í©ëë¤. ê°ë ¹:
Web.activity/ locale/ de_DE/ activity.linfo zh_CN/ activity.linfo activity/ activity.info activity-web.svg icons/
- ì¡í°ë¹í°
All metadata about the activity is organized in this subdirectory. í´ë¹ ì¡í°ë¹í°ì ê´í 모ë ë©íë°ì´í°ë ì´ ìë¸ëë í 리ì ì¡°ì§ë©ëë¤.
- ìì´ì½
í´ë¹ ì¡í°ë¹í°ì ìí´ ì´ì©ëë ìì´ì½ì í¬í¨í©ëë¤. ìê°.ì¡í°ë¹í° íì´ì í¨í¤ì§ë¥¼ ì´ì©í ë, ê·¸ ê²½ë¡ë ìëì ì¼ë¡ ëí¨í¸ gtk icon themeì ì¶ê°ë©ëë¤.
.info íì¼ í¬ë§·
.info íì¼ì key/value pair í¬ë§·ì ë°ë¥´ëë°, fd.o desktop entry specì ì ì¬íì§ë§, ì¼ì¹íì§ë ììµëë¤. ìë¡ì¨:
[Activity] name = Web activity_version = 1 host_version = 1 service_name = com.redhat.Sugar.BrowserActivity icon = activity-web class = browseractivity.BrowserActivity mime_types = application/pdf;image/tiff
ì í¨í íë¼í¼í°ì ìì¸í ì¤ëª ì:
[Activity]
- activity.info íì¼ì [Activity]ë¡ ììí´ì¼ë§ íë©°, íì¼ì 첫ë²ì§¸ ë¼ì¸ì ìì¹í´ì¼ í©ëë¤.
name = Web
- ì´ ê²ì ìê°ê° í´ë¹ ì¡í°ë¹í°ë¥¼ ì¸ê¸í ë íìëë ì´ë¦ì ëë¤. ê´í¸ ì¸ì´ ì½ëê° ìë 'name' í¤ë í´ë¹ ì¡í°ë¹í°ì "en_US" ì§ìí ì´ë¦ì ëë¤. activity.info íì¼ì ì´ í¤ë¥¼ ê°ì ¸ì¼ë§ í©ëë¤.
activity_version = 1
- ê° activity.info íì¼ì "activity_version" í¤ë¥¼ ê°ì ¸ì¼ í©ëë¤. ì´ ë²ì ì ë¨ì¼ ìì ì ìì´ë©°, 1~9 ì¬ì´ì 문ì를 ê°ì§ ìë§ ììµëë¤. ë³´ë¤ í° ë²ì ì "newer"ë¡ ê°ì£¼ë©ëë¤. ì´ í¤ì í ë¹ë ê°ì í´ë¹ ì¡í°ë¹í°ì ëí´ opaqueë¡ ê°ì£¼ë©ëë¤; ì´ ì¡í°ë¹í°ì ì ì¼í ì구ë ìë¡ì´ ì¡í°ë¹í° ë¹ëê° ë°ëì ë ì»¤ì¼ íë¤ë ì ì´ë¹ë¤.
host_version = 1
- Each activity.info file must have a "host_version" key. The version is a single positive integer, and may only contain the characters 1 through 9. This specifies the version of the Sugar environment which the activity is compatible with. (fixme: need to specify sugar versions somewhere. Obviously we start with 1.)
service_name = com.redhat.Sugar.BrowserActivity
- This is the activity's dbus service name. It is required. It is also used as the activity's default service type when the activity is shared on the network. To determine this type, the distince parts (separated by the '.' character) are reversed, any '.' is replaced by a '_' character, and the type is prefixed by a '_' character. So in this example, the default service type would be "_BrowserActivity_Sugar_redhat_com".
icon = activity-web
- It points to the activity's icon. The icon is looked up in the activity bundle's base directory. It cannot contain a path. When searching for the icon in the activity bundle's base directory, only an file with the icon name and the extension '.svg' will be looked for.
exec = myfactory myoptions
- The exec key is used when Sugar installs the activity. It specifies the executable which Sugar runs to start the activity's factory service. A factory service spawns instances of the actual activity. The executable name must be a path relative to the bundle's top level directory. Environment variables given on the exec line are expanded, in particular, $SUGAR_BUNDLE_PATH expands to the absolute path of the bundle directory.
class = browseractivity.BrowserActivity
- For Python-based activities, it's not necessary to write a custom factory since a generic one is provided with Sugar. Use this attribute to specify the main Activity class. When a class is specified the exec attribute is ignored.
mime_types = application/pdf;image/tiff
- List of mime types supported by the activity, separated by semi colons. It's used when opening a file from the web or to present to the user a list of activities which can open a certain journal object.
show_launcher = yes
- ì´ í¤ë ì íì ì ëë¤. ìê±°ë, "yes" ê°ì ê°ì§ë©´, í´ë¹ ì¡í°ë¹í°ë ìê° í¨ë ë¡ ì² ë´ì ê·¸ ìì ì ìì´ì½ì¼ë¡ íìëë©°, ì í¨í 'icon' key/value pairê° ì구ë©ëë¤. "no" ê°ì´ ëª ìëë©´, í´ë¹ ì¡í°ë¹í°ë
ìê° í¨ë ë¡ ì² ë´ì ëíëì§ ìì¼ë©°, 'icon' ê° ì구ëì§ ììµëë¤.
ì¡í°ë¹í° ì´ë¦ ë¡ì»¬ë¦¬ì ì´ì /ë²ì
ì§ìíë ë°ì´í°ë ì§ì ëë í 리ì ììµëë¤. ê° ì¸ì´ë í´ë¹ ì¸ì´ì ISO ì½ëì ë°ë¼ ëª ëª ë separate ëë í 리 ë´ì ìì ì ì§ìí í¤ë¥¼ ë³´ê´í©ëë¤. 'activity.info' íì¼ë¡ë¶í°ì ì§ìí í¤ë ê·¸ ëë í 리ì 'activity.linfo' íì¼ì ë³´ê´ë©ëë¤. ê°ë ¹, ë ì¼-ì§ìí ë ì¼ì´ (ì¤ìì¤-ì§ìí ë ì¼ì´ì ë¹êµí´ì) ë²ìì 'de_DE/activity.linfo' íì¼ì ë³´ê´ë©ëë¤.
Example.activity/ exampleactivity.py activity/ activity.info locale/ de_DE/ activity.linfo de_CH/ activity.linfo
At this time, only translations for the 'name' key from the 'activity.info' file is supported. A localized 'de_DE/activity.linfo' file would look like:
[Activity] name = Web
Keys in the languague-specific '.linfo' files selectively override keys from the 'activity.info' file; if a key is not present in the '.linfo' file the value from the 'activity.info' file is used instead.
í¨í¤ì§
ì¡í°ë¹í° ë²ë¤ì ".xo" ìµì¤í ì ì´ ìë ì§ íì¼ë¡ í¨í¤ì§ëì´ì¼ í©ëë¤.
기í 기ì ë¹êµ
ì¡í°ë¹í° ë²ë¤ì OS X ë²ë¤ ëë ìë° JAR íì¼ê³¼ ì ì¬í©ëë¤; ë 립ì ì¼ë¡ ì´ë ê°ë¥í ë¨ì¼ ëë í 리 ë´ì ê·íê° íìë¡ íë 모ë ê²ì 캡ìííë ë¨ìí 매커ëì¦.
ì¤í í¨í¤ì§ autopackageìë ë¤ë¥¸ë°, ì´ê²ì í¨í¤ì§ ê´ë¦¬ ìì¤í ì´ ìëëë¤. ì¤ì ë°ì´í°ë² ì´ì¤ë ìê³ , install/uninstallìì ì¤íëë ì¤í¬ë¦½í¸ë ììµëë¤. ëí í¹ì í íì¼ í¬ë§·ë ììµëë¤.
klikê³¼ ë¹êµí ë, í´ë¹ í¨í¤ì§ ë´ì ë¡ì»¬ ì ëì¤ ëë í 리 구조를 ë³µì íë ¤ë ìëê° ìëëë¤; í´ë¹ ì¡í°ë¹í°ë ì¬ì í ìì¤í ì´ ì ê³µíë ë°ì´ë리 ë±ì ë§í¬ë©ëë¤. ìí¤ë¸ë¥¼ ìì¶íì¬ ë¤í¸ìí¬ë¡ ë³´ë´ë ê² ì¸ìë ìë² ì¬ì´ë ì»´í¬ëí¸ë ìì¼ë©°, ì¡í°ë¹í°ë¤ì´ ì기 í¬í¨ self-containedëë¯ë¡, ëíëì ì²´í¹ë ììµëë¤.